使用fork()创建一个子进程,父进程显示”Is parent”,子进程显示”Is son”,并执行”ls -l”命令列出当前目录下的所有文件和子目录。试观察记录屏幕上的显示结果
时间: 2024-02-13 14:01:05 浏览: 20
Linux中使用C语言的fork()函数创建子进程的实例教程
下面是一个实现上述功能的示例代码:
```
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
int main() {
pid_t pid = fork();
if (pid == 0) {
// 子进程代码
printf("Is son\n");
system("ls -l");
} else if (pid > 0) {
// 父进程代码
printf("Is parent\n");
wait(NULL); // 等待子进程结束
} else {
// 出错处理
printf("Error: fork() failed!\n");
}
return 0;
}
```
在上面的代码中,使用 fork() 创建了一个子进程。在子进程中,使用 system() 函数执行 ls -l 命令列出当前目录下的所有文件和子目录。在父进程中,使用 wait() 函数等待子进程的结束,以确保子进程能够正确执行完毕。最后,分别在父进程和子进程中打印不同的字符串,以区分两个进程的不同。运行该程序后,可以观察到父进程和子进程的不同输出结果,以及子进程执行 ls -l 命令列出的文件和子目录。
阅读全文