forkについて学ぶ
ようやくこの近辺に来つつある。psコマンドを叩いたときなんでbashだのcshだのが出ているんだろうと思っていたが少しずつ理解できてきたような気がする。
以下のコードはFreeBSDで動作しました。
#include <stdio.h> #include <stdlib.h> void child_code(int delay){ printf("childpid is %d\n", getpid()); sleep(delay); exit(0); } void parent_code(int childpid){ int wait_val; wait_val = wait(NULL); printf("childpid was %d and wait_val is %d\n", childpid, wait_val); } int main(){ int newpid; printf("parent pid is %d\n", getpid()); if((newpid = fork()) == -1) perror("fork"); else if(newpid == 0) child_code(2); else parent_code(newpid); return 0; }
Unix/Linuxプログラミング理論と実践
posted with amazlet at 09.05.06
おすすめ度の平均:
深く掘り下げる良書