一度に複数の子プロセスを起動し、システム時間とユーザー時間を記録する必要があるシェルを作成しています。
これまでのところ、私はそれを行うことができます。唯一の問題は、wait4 を使用して、子プログラムが使用するシステム リソースを取得し、それを使用法と呼ばれる私の rusage 構造に入れていることです。
すべてのプロセスを同時に起動し、ユーザーとシステムの時刻を追跡するにはどうすればよいですか? wait4() システム コールを削除し、外部でループして親を待機させることができますが、そうすると、すべてではなく最後のプロセスの時間しか記録できません。
どうすればこれを修正できるか分かりますか?
execute(commandPipev,"STANDARD",0);
wait4(pid,&status,0,&usage);
printf("Child process: %s\t PID:%d\n", commandPipev[0], pid);
printf("System time: %ld.%06ld sec\n",usage.ru_stime.tv_sec, usage.ru_stime.tv_usec);
printf("User time: %ld.%06ld sec\n\n",usage.ru_utime.tv_sec, usage.ru_utime.tv_usec);