补全execlProcess函数,使用vfork函数创建进程,并在子进程中调用创建一个名为testDir的目录,在父进程中输出"Parent Process"字符串。
时间: 2024-02-11 10:06:49 浏览: 204
举例讲解C语言的fork()函数创建子进程的用法
下面是补全后的execlProcess函数代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
void execlProcess() {
pid_t pid;
int status;
pid = vfork();
if (pid == -1) {
perror("vfork error");
exit(EXIT_FAILURE);
} else if (pid == 0) {
// 子进程中创建目录
if (mkdir("testDir", 0777) == -1) {
perror("mkdir error");
exit(EXIT_FAILURE);
}
// 子进程中退出
_exit(EXIT_SUCCESS);
} else {
// 父进程中等待子进程结束
if (waitpid(pid, &status, 0) == -1) {
perror("waitpid error");
exit(EXIT_FAILURE);
}
printf("Parent Process\n");
}
}
```
该函数中使用了vfork函数创建一个子进程,子进程中调用mkdir函数创建一个名为"testDir"的目录,父进程中使用waitpid函数等待子进程结束,并在子进程结束后输出"Parent Process"字符串。注意在子进程中调用_exit函数退出,避免造成数据不一致的问题。
阅读全文