Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14636
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 69
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-15 09:05
文章存档

2013年(8)

我的朋友

分类: C/C++

2013-10-23 20:31:18


点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <sys/types.h>
  6. #include <sys/stat.h>
  7. #include <fcntl.h>

  8. int main()
  9. {
  10.   int n,fd[2];
  11.   pid_t pid;
  12.   char buffer[100];
  13.   char str[100];
  14.   int fout;
  15.   fout = open("data.out",O_WRONLY|O_CREAT);
  16.   if(pipe(fd)<0)
  17.     {
  18.       perror("pipe");
  19.     }
  20.   pid = fork();
  21.   if(pid<0)
  22.     {
  23.       perror("fork");
  24.     }
  25.   else if(pid>0)
  26.     {
  27.       close(fd[0]);
  28.       while(scanf("%s",str)!=EOF)
  29.     {
  30.      write(fd[1],str,strlen(str));
  31.     }
  32.     }
  33.   else
  34.     {
  35.       close(fd[1]);
  36.       while((n = read(fd[0],buffer,100))!=0)
  37.     {
  38.      write(fout,buffer,n);
  39.      write(fout,"\n",1);
  40.     }
  41.       exit(0);
  42.     }
  43.   return 0;
  44. }

我写的第一个真正意义上的并发运行的程序。以表纪念

阅读(105) | 评论(0) | 转发(0) |
1

上一篇:MySQL登录命令

下一篇:sigaction函数解析

给主人留下些什么吧!~~