プログラム
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4#include <unistd.h> 5#include <sys/wait.h> 6 7int main(void) 8{ 9 int argc, status; 10 char cmd[80], *cmdp, *argv[10+1]; 11 12 for(;;){ 13 printf("myshell@ "); 14 if (gets(cmd) == NULL) /* unsafe !!*/ 15 exit(0); 16 cmdp = cmd; 17 for (argc = 0; argc < 10; argc++){ 18 if((argv[argc]=strtok(cmdp, " ")) == NULL) 19 break; 20 cmdp = NULL; 21 } 22 argv[argc] = NULL; 23 24 if (fork() == 0) { /* child process */ 25 execvp(*argv, argv); 26 perror(*argv); 27 exit(1); 28 } 29 else { /* parent process */ 30 wait(&status); 31 } 32 } 33}
質問
上記プログラムにおいて,子プロセスを生成している理由を教えてください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。