vforkは、forkでwaitして子プロセスが終了しての運用をカーネルとして実装するものです。実務上では関数コールするのと同じで、あえて新規タスクとして運用する必要はなさそうですが、execで外部コマンド結果の反映では、呼び出し元プロセスと外部コマンドは差し替わるため、新規プロセスを作成した子プロセスでexecとなり、子プロセスが終了するまで親プロセスは待機する必要があり、vforkはそれ故の実装でないかと。 [root@localhost c]# cat vfork.c #include <stdlib.h> #include <stdio.h> #include <fcntl.h> void fork_fun() { int fd; sleep(1); fd = open("babakaka.txt", O_RDWR | O_CREAT); } void main(int argc,