Linux程序控制 Minishell

2021-09-22 12:53:01 字數 985 閱讀 8530

1.使用fork建立程序

int main()    

}

if(pid == 0)

}

}

上面的**雖然用fork建立了程序,可是沒有**子程序,父程序不退出,子程序退出後又沒有被**,進而引發了殭屍執行緒的問題

2.使用wait新增**子程序

int main()    

}

if(pid == 0)

}

}

子程序退出後,被父程序**,這樣不會產生殭屍程序

#include #include #include #include #include #include #include #include char *ar**[32];

int argc;

char buf[1024] = ;

int redirect = 0;

char *file = null;

void do_face()

}void do_parse()

while(isspace(*ptr) && *ptr != '\0')

file = ptr;

while(!isspace(*ptr) && *ptr != '\0')

*ptr = '\0';

}ptr++;

} ptr = buf;

while(*ptr != '\0')

}else

} ar**[argc] = null;

}int main()

else if(pid == 0)

if(redirect == 2)

execvp(ar**[0], ar**);

exit(0);

}else

} return 0;

}

linux 程序控制

什麼是程序 每乙個程序在系統中都有唯一的id標示它,此id為程序標示符 程序標示符的型別 pit t,其實是乙個無符號整形 乙個程序標示符對應唯一的乙個程序,多個程序標示符可以對應同乙個程式 程序和程式的區別 程式 可執行的二進位制 檔案,這種檔案載入到記憶體中執行就得到了乙個程序 程序 同乙個程式...

Linux程序控制

linux程序控制 獲取pid include include pid t getpdi void 獲取本程序id pdi t getppid vodi 獲取父程序id,及獲取建立子程序的程序id 程序建立 include pid t fork void 建立子程序 呼叫一次返回兩次值 1.父程序中...

linux程序控制

linux程序控制 編寫命令直譯器 一 背景 之前在 計算機作業系統 這本書中已經多次接觸了程序這一概念,而程序在作業系統中具體是做什麼的呢?卻沒有實際的與程序發生過互動,因此也就沒有實際的感受。對於我來說程序僅僅停留在概念的層面上 程序是程式執行時的記憶體空間和設定或者說程序就是程式的進行時。沒有...