补全execlProcess函数,使用fork函数创建进程,并在子进程中调用创建一个名为testDir的目录,在父进程中输出"Parent Process"字符串。
时间: 2024-09-21 17:02:20 浏览: 64
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
// 定义execlProcess函数
void execlProcess(const char* command) {
pid_t pid = fork(); // 创建进程
if (pid == -1) { // fork失败,打印错误并退出
perror("Fork failed");
exit(1);
} else if (pid > 0) { // 父进程
printf("Parent Process\n"); // 输出父进程信息
} else { // 子进程
// 在子进程中执行命令并尝试创建目录
if (mkdir("testDir", 0755) != 0) { // 检查是否成功创建目录
perror("Failed to create testDir");
_exit(EXIT_FAILURE); // 子进程直接退出
}
// 使用execl替换当前进程,这里可以添加执行其他命令
// execl(command, command, NULL); // 如果需要执行特定命令,填入相应路径
_exit(0); // 子进程执行完毕,正常结束
}
}
int main() {
execlProcess("/bin/bash"); // 这里只是一个示例,实际可以根据需求指定其他命令
return 0;
}
```
在这个例子中,`execlProcess`函数首先通过`fork()`创建一个新的进程。如果fork()成功,返回值大于0代表的是父进程,它会输出"Parent Process"然后继续执行;返回值为0则是子进程,它试图创建名为"testDir"的目录。如果创建目录失败,将输出错误信息并终止子进程。请注意,这仅作为演示如何在C语言中使用`fork()`和`execl()`的一个基础示例,实际应用中可能需要处理更多细节和异常情况。
阅读全文