回答
我相當肯定,無論誰賦予你這個功課尋找exec()
家庭的功能,從POSIX API頭<unistd.h>
,因爲沒有別的更類似於排序的功能,你描述。
exec()
函數族執行一個新進程,並用新執行的進程替換當前正在運行的進程地址空間。
從man page:
的EXEC()函數系列有 一個新的進程圖像替換當前的進程圖像。
它與「終止」父進程不完全相同,但實際上它導致父進程地址空間被子進程的地址空間擦除(替換)的類似情況。
所以你說exec是庫函數? – 2013-04-24 02:11:53
非常感謝你,這很有道理我非常感謝你的幫助。 – 2013-04-24 02:15:52
什麼Linux庫函數就像fork(),但父進程 終止?
父進程不應該終止,因爲它必須等待子進程完成執行,之後它們將處於一個稱爲「殭屍狀態」的狀態,現在清理它是父級的責任孩子過程的剩菜。父進程可以在不清理子進程的情況下終止,但是,這不是一個正確的方法,因爲子進程的退出狀態應該由父進程收集和檢查。
下面是一個例子,來證明,我剛纔說的...
#include<stdio.h>
#include<unistd.h>
#include<sys/wait.h>
int main()
{
pid_t cpid = 1 ;
int status;
cpid = fork();
// Load a application to the child using execl() , and finish the job
printf("Parent waiting for child to terminate\n");
int wait_stat = waitpid(-1,&status,0); // Parent will hang here till all child processes finish executing..
if (wait_stat < 0)
{
perror("waitpid error");
exit(-1);
}
// WIFEXITED and WEXITSTATUS are macros to get exit status information, of the child process
if (WIFEXITED (status))
{
printf("Child of id %u cleaned up\n",wait_stat);
printf("Exit status of application = %u\n",WEXITSTATUS(status));
}
}
父進程可以終止,在這種情況下,對子進程使用'init'' wait()'。 – 2013-04-24 02:39:08
@JorgeIsraelPeña,是真的,但最好由父母完成,在那裏可以解釋孩子的退出代碼並採取適當的措施 – 2013-04-24 02:40:58
當然,我只是說父母的確可以終止而不用等待兒童;這不一定是一個壞習慣。在某些情況下,父母可能完全不關心孩子的狀況。實際上,一種策略包括分叉兩次並終止第一個子進程,以便原始進程可以繼續處理,而不必關心剩餘(第二個)子進程的狀態(因爲它將由'init'處理)。 – 2013-04-24 02:48:12
- 1. 在unix中使用fork
- 2. fork()並在C中退出()
- 3. 使用fork進行C語言編程()
- 4. C進程fork()
- 5. Fork失敗C
- 6. 在C中fork()調用之後引用指針C
- 7. fork()系統調用c
- 8. C中的Fork()函數
- 9. C程序中的fork()
- 10. 在IBM JDK中使用javac fork屬性
- 11. 如何在Perl中使用fork()?
- 12. 在fork/execs程序中使用Devel :: NYTProf
- 13. 在JDK6中使用fork-and-join
- 14. 奇怪的輸出在C fork調用
- 15. 如何在C中fork()n子進程?
- 16. 使用fork的C++程序中的非阻塞系統調用
- 17. fork()的C編程
- 18. fork,execlp在Linux中
- 19. C中的管道 - 我必須使用fork嗎?
- 20. fork()內fork()
- 21. 使用select而不是fork
- 22. NodeJS .fork()使用線程
- 23. Unix - 使用fork的進程()
- 24. 使用fork與setjmp/longjmp
- 25. C++進程fork和sigalarm
- 26. C-fork()和進程行爲
- 27. fork()和管道()in c
- 28. C++:fork/exec還是pthread?
- 29. C-fork()和共享內存
- 30. Exec(cd和ls)和Fork調用C
有沒有AFAIK,雖然也許仰視'exec'將是有益的,因爲它是結合經常使用'叉'(例如[「fork-exec」](http://en.wikipedia.org/wiki/Fork-exec))。 – user2246674 2013-04-24 02:10:31