qfedu-linux-advanced-level/day2/test_fork3.c

39 lines
771 B
C

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
int main(int argc, char const *argv[])
{
pid_t pid;
int length = 0;
char buf[] = "a write to stdout\n";
// 向标准输出写入数据 1 表示标准输出
length = write(1, buf, strlen(buf));
if (length != strlen(buf))
{
printf("写入错误\n");
}
printf("fork之前\n");
pid = fork(); // 创建子进程
if (pid < 0)
{
perror("fork"); // 输出错误信息
}
else if (pid == 0) // 子进程
{
printf("在子进程中\n");
}
else // 父进程
{
sleep(1); // 等待1秒钟
printf("在父进程中\n");
}
printf("fork之后\n");
return 0;
}