原创 第八章——进程控制(Process Control)

2009-3-16 13:46 1724 4 4 分类: 软件与OS
      1 #include "apue.h"
      2
      3 int     glob = 6;
      4 char    buf[] = "a write to stdout\n";
      5
      6 int
      7 main(void)
      8 {
      9         int     var;    //automatic variable on the stack
     10         pid_t   pid;
     11
     12         var = 88;
     13         if (write(STDOUT_FILENO, buf, sizeof(buf) - 1) != sizeof(buf)-1)
     14                 printf("write error");
     15         printf("before fork\n");
     16
     17         if ((pid = fork())<0) {
     18                 printf("fork error\n");
     19         }
     20         else if (pid == 0) {
     21                 glob ++;
     22                 var ++;
     23         }
     24         else {
     25                 sleep(2);
     26         }
     27
     28         printf("pid = %d, glob = %d, var = %d\n", getpid(), glob, var);
     29         exit(0);
     30 }
~                         


yannzi@ubuntu:~/桌面/_8$ gcc -o example_of_fork_function example_of_fork_functio

n.c
yannzi@ubuntu:~/桌面/_8$ ./example_of_fork_function
a write to stdout
before fork
pid = 9253, glob = 7, var = 89
pid = 9252, glob = 6, var = 88

yannzi@ubuntu:~/桌面/_8$ ./example_of_fork_function > temp.out
yannzi@ubuntu:~/桌面/_8$ cat temp.out
a write to stdout
before fork
pid = 9272, glob = 7, var = 89
before fork
pid = 9271, glob = 6, var = 88

标准输出连接到终端行缓冲与否则全缓冲的区别




先学习到176页,8.3. fork Function
预知后事如何,请继续往下写。。。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条