在C语言中,wait函数用于等待子进程的结束。
下面是wait函数的使用方法:
引入头文件:#include <sys/types.h> 和 #include <sys/wait.h>
创建子进程:使用fork函数创建子进程。
在父进程中调用wait函数:在父进程中调用wait函数,等待子进程结束。
获取子进程的结束状态:wait函数返回子进程的pid(进程ID),可以通过wait的参数获取子进程的结束状态。
下面是一个简单的示例代码:
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
int main() {
pid_t pid;
int status;
pid = fork();
if (pid == -1) {
// 创建子进程失败
perror("fork");
return 1;
}
else if (pid == 0) {
// 子进程执行的代码
printf("This is child process.\n");
sleep(5);
return 0;
}
else {
// 父进程执行的代码
printf("This is parent process.\n");
wait(&status);
if (WIFEXITED(status)) {
printf("Child process exited with status: %d\n", WEXITSTATUS(status));
}
return 0;
}
}
在上面的示例代码中,首先使用fork函数创建了一个子进程。子进程中打印"This is child process.“,然后使用sleep函数让子进程休眠5秒钟。父进程中打印"This is parent process.”,然后调用wait函数等待子进程结束,并通过WIFEXITED宏检查子进程是否正常结束,如果是正常结束,则通过WEXITSTATUS宏获取子进程的退出状态。