#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
/*
pid_t fork(void);
子进程复制父进程的0到3g空间和父进程内核的PCB,但id不同
fork调用一次返回两次
父进程中返回子进程ID
子进程中返回0
读时共享,写时复制
*/
int main()
{
pid_t pid;
char *message = NULL;
int n = 0;
pid = fork();///调用fork函数后,子进程和父进程就从这里开始执行了
if (pid < 0)
{
perror("fork failed");
exit(1);
}
if (pid == 0)
{
message = "This is the child\n";
n = 6;
}
else
{
message = "This is the parent\n";
n = 3;
}
for(; n > 0; n--)
{
printf(message);
sleep(1);
}
return 0;
}