私はこれについてしばらく頭を悩ませていましたが、今は助けが必要です。子プロセスをフォークして、execve() を介して「echo hello」を呼び出すループを作成しようとしています。
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
int main(int argc, char *argv[],char *envp[]){
int i = 0;
while(i<10){
pid_t pid;
pid = fork();
if(pid != 0){
int status;
waitpid(-1, &status, 0);
}
if(pid == 0) {
char *arg_array[2];
arg_array[0]="echo";
arg_array[1]="hello";
char filename[] = "/bin/echo";
if (execve(filename,arg_array,envp) == (-1)) {
printf("ERROR!\n");
exit(1);
}
}
i++;
}
}
最初、コードは最初の実行で失敗しましたが、その後のすべての実行で成功しました。さて、ここで提示するためにクリーンアップした後、まったく成功しません-私が得るのはエラーだけです! x 10. 私はさらに何かを壊したに違いありません。
これはこのサイトでの 2 番目の質問に過ぎないので、私の質問や建設的な批判を改善するための提案があれば、共有してください! ありがとうございました。