69,378
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int glob = 6;
char buf[] = "a write to stdout\n";
int
main(void)
{
int var;
pid_t pid;
var = 88;
if (write(STDOUT_FILENO, buf, sizeof(buf) - 1) != sizeof(buf) - 1)
{
printf("write error");
return;
}
printf("before fork\n");
if ((pid = fork()) < 0)
{
printf("fork error");
return;
}
else if (pid == 0)
{
glob++;
var++;
printf("test1\n");
}
else
{
printf("sleep\n");
sleep(2);
}
printf("pid = %d, glob = %d, var = %d\n", getpid(), glob, var);
exit(0);
}
if ((pid = fork()) < 0)
{
printf("fork error");
return;
}
else if (pid == 0)
{
glob++;
var++;
printf("test1\n");
}
else
{
printf("sleep\n");
sleep(2);
}
printf("pid = %d, glob = %d, var = %d\n", getpid(), glob, var);