39 lines
771 B
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;
|
||
|
}
|