在右侧编辑器补充代码,要求如下: 创建进程; 在父进程中输出entering main process---; 在子进程中使用execl()函数调用src/step2/hello.c文件,测试环境中已将path置为src/step2,因此带路径的文件名为./hello
时间: 2024-09-26 16:16:51 浏览: 107
在C语言中,你可以使用`fork()`系统调用来创建一个新的进程,然后通过管道或者标准I/O与其他进程通信。这里是一个示例代码片段,展示如何在父进程中先输出信息,然后在子进程中使用`execl()`执行指定的C程序:
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
int main() {
pid_t child_pid; // 子进程ID
// 创建进程
if ((child_pid = fork()) == -1) {
perror("Fork failed");
exit(1);
}
if (child_pid == 0) { // 如果是子进程
printf("entering child process---\n"); // 输出信息到子进程
execl("./src/step2/hello", "hello", NULL); // 执行hello.c文件
perror("Execl failed");
exit(1);
} else { // 如果是父进程
printf("entering main process---\n"); // 输出信息到父进程
wait(NULL); // 等待子进程结束
}
return 0;
}
```
在这个例子中,`execl()`函数用于完全替换当前进程,即父进程会立即终止,而子进程会从头开始执行`hello`程序。
阅读全文