Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1798032
  • 博文数量: 335
  • 博客积分: 4690
  • 博客等级: 上校
  • 技术积分: 4341
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-08 21:38
个人简介

无聊之人--除了技术,还是技术,你懂得

文章分类

全部博文(335)

文章存档

2016年(29)

2015年(18)

2014年(7)

2013年(86)

2012年(90)

2011年(105)

分类: C/C++

2011-10-08 23:08:19

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #define OK 0
  5. int glob = 6;
  6. char buf[] = "a write to stdout\r\n";
  7. int main(int argc, char *argv[])
  8. {
  9. int var;
  10. pid_t pid;
  11. var = 88;
  12. if (write(STDOUT_FILENO,buf,sizeof(buf-1)) != sizeof(buf)-1){
  13. printf("write error\r\n");
  14. }
  15. printf("before fork\r\n");
  16. if ( (pid = fork()) < 0){
  17. printf("fork error\r\n");
  18. }else if (pid == 0){
  19. glob++;
  20. var++;
  21. }else {
  22. sleep(2);
  23. }
  24. printf("pid = %d,glob = %d var = %d\r\n",getpid(),glob,var);
  25. getchar();
  26. return OK;
  27. }
  28. apue:210
  29. 同标准库函数的缓冲有关系。
  30. ubutu@ubutu-desktop:~$ uname -v
  31. #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009
  32. ubutu@ubutu-desktop:~$ gcc -v
  33. Using built-in specs.
  34. Target: i486-linux-gnu
  35. ubutu@ubutu-desktop:~$ gcc -o fork fork.c
  36. ubutu@ubutu-desktop:~$ ./fork
  37. a write to stdout
  38. before fork
  39. pid = 3437,glob = 7 var = 89
  40. pid = 3436,glob = 6 var = 88
  41. ubutu@ubutu-desktop:~$ ./fork >a.txt
  42. ubutu@ubutu-desktop:~$ cat a.txt
  43. a write to stdout
  44. before fork
  45. pid = 3439,glob = 7 var = 89
  46. before fork
阅读(1316) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~