使用系统调用fork()来创建一个子进程。子进程通过系统调用exec()更换自己的执行代码,显示新的代码后,调用exit()结束。而父进程则调用waitpid()等待子进程结束,并在子进程结束后显示子进程的标识符
时间: 2023-05-15 16:05:11 浏览: 180
举例讲解C语言的fork()函数创建子进程的用法
可以使用以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid = fork(); // 创建子进程
if (pid == -1) { // 创建失败
perror("fork");
exit(EXIT_FAILURE);
} else if (pid == 0) { // 子进程
printf("子进程的标识符为:%d\n", getpid());
execl("/bin/ls", "ls", "-l", NULL); // 更换执行代码
exit(EXIT_SUCCESS);
} else { // 父进程
waitpid(pid, NULL, 0); // 等待子进程结束
printf("子进程已结束\n");
}
return 0;
}
```
注意:在使用execl()函数时,第一个参数是要执行的程序的路径,第二个参数是程序名,第三个参数及以后是传递给程序的参数,最后一个参数必须是NULL。
阅读全文