我无法execvp
像工作方式一样system()
工作。
当我使用代码时:
int cstatus; /* Exit status of child. */
pid_t cpid;
switch (cpid = fork ()) {
case -1:
printf("fork");
case 0: // child
system("./file");
printf("child->");
default:
pid_t tpid = wait(&cstatus);
printf("parent\n");
}
./file
按预期运行并打印child->parent
但是当我尝试运行程序时:
int cstatus; /* Exit status of child. */
pid_t cpid;
switch (cpid = fork ()) {
case -1:
printf("fork");
case 0: // child
execvp("file", NULL);
printf("child->");
default:
pid_t tpid = wait(&cstatus);
printf("parent\n");
}
我得到一个输出child->parentparent
并且文件没有file
在命令提示符中显示输出(从 生成)。
我在这里做错了吗?我实际上是在尝试file
在前台运行并让父母等到它完成。