用forkO、exec0和wait)系统调用写一个简单的测试程序。父进程创建一个子进程, 执行date命令。子进程结束后,父进程输出子进程的PID和退出码。
时间: 2024-03-20 16:43:32 浏览: 58
好的,以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid = fork(); // 创建子进程
if (pid < 0) {
printf("Fork failed\n");
exit(1);
} else if (pid == 0) {
// 子进程执行date命令
execl("/bin/date", "date", NULL);
exit(0);
} else {
// 父进程等待子进程结束
int status;
wait(&status);
printf("Child PID: %d, Exit Code: %d\n", pid, WEXITSTATUS(status));
}
return 0;
}
```
在代码中,我们首先使用 `fork()` 系统调用创建了一个子进程,然后在子进程中使用 `execl()` 系统调用执行 `date` 命令。父进程等待子进程结束,并输出子进程的PID和退出码。最后,程序通过 `return 0` 语句结束。
阅读全文