1. #include<unistd.h>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #include<string.h>
  5. #define BUFSIZE 200
  6. int main()
  7. {
  8. FILE *read_fp;
  9. char buffer[BUFSIZE+];/*用于存放读取的内容*/
  10. int chars_read;
  11. memset(buffer,'\0',sizeof(buffer));
  12. read_fp=popen("uname -a","r");//用于显示内核版本 及现在时间
  13. /*返回的是文件指针,因此-文件指针是要定义的*/
  14. if(read_fp != NULL)
  15. {
  16. chars_read=fread(buffer,sizeof(char),BUFSIZE,read_fp);//返回读取字符的个数,错误则为-1
  17. /*并读取传回的内容是什么*/
  18. if(chars_read > )
  19. {
  20. printf("Output was:-\n%s\n",buffer);
  21. }
  22.  
  23. pclose(read_fp);
  24. exit(EXIT_SUCCESS);
  25. }
  26. exit(EXIT_FAILURE);
  27. }
  28. /*因些,使用popen到少要定义:
  29. 文件指针,
  30. 字符串
  31. */
  1. #include<unistd.h>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #include<string.h>
  5. #define BUFSIZE 50
  6. int main()
  7. {
  8. FILE *read_fp;
  9. char buffer[BUFSIZE+];/*用于存放读取的内容*/
  10. int chars_read;
  11. memset(buffer,'\0',sizeof(buffer));
  12. read_fp=popen("ps ax","r");//用于显示内核版本 及现在时间
  13. /*返回的是文件指针,因此-文件指针是要定义的*/
  14. if(read_fp != NULL)
  15. {
  16. while(chars_read > )
  17. {
  18.  
  19. //返回读取字符的个数,错误则为-1
  20. /*并读取传回的内容是什么*/
  21. chars_read=fread(buffer,sizeof(char),BUFSIZE,read_fp);
  22. buffer[chars_read-]='\0';
  23. printf("Reading %d:-\n %s \n",BUFSIZE,buffer);
  24.  
  25. }
  26. pclose(read_fp);
  27. exit(EXIT_SUCCESS);
  28. }
  29. exit(EXIT_FAILURE);
  30. return ;
  31. }
  32. /*因些,使用popen到少要定义:
  33. 文件指针,
  34. 字符串
  35. */
  1. #include<unistd.h>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #include<string.h>
  5. #define BUFSIZE 50
  6. int main()
  7. {
  8. FILE *read_fp;
  9. char buffer[BUFSIZE+];/*用于存放读取的内容*/
  10. int chars_read;
  11. memset(buffer,'\0',sizeof(buffer));
  12. read_fp=popen("cat 13-3-*.cpp | wc -l","r");//用于显示内核版本 及现在时间
  13. /*返回的是文件指针,因此-文件指针是要定义的*/
  14. if(read_fp != NULL)
  15. {
  16. while(chars_read > )
  17. {
  18.  
  19. //返回读取字符的个数,错误则为-1
  20. /*并读取传回的内容是什么*/
  21. chars_read=fread(buffer,sizeof(char),BUFSIZE,read_fp);
  22. buffer[chars_read-]='\0';
  23. printf("Reading %d:-\n %s \n",BUFSIZE,buffer);
  24.  
  25. }
  26. pclose(read_fp);
  27. exit(EXIT_SUCCESS);
  28. }
  29. exit(EXIT_FAILURE);
  30. return ;
  31. }
  32. /*因些,使用popen到少要定义:
  33. 文件指针,
  34. 字符串
  35. */
  1. #include<unistd.h>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #include<string.h>
  5.  
  6. #define Buffer 100
  7.  
  8. int main()
  9. {
  10. FILE *write_fp;
  11. char buffer[Buffer + ];
  12. //把格式化的数据写入某个字符串缓冲区。
  13. //返回值:字符串长度(strlen)
  14. sprintf(buffer,"Once upon a time, there was...\n");
  15. //********格式化输出文件中的数据***********///
  16. //-c:等价于-t c,选择ASCII码字符或者是转义字符
  17. write_fp=popen("od -c","w");
  18. if(write_fp != NULL)
  19. {
  20. fwrite(buffer,sizeof(char),strlen(buffer),write_fp);
  21. pclose(write_fp);
  22. exit(EXIT_SUCCESS);
  23. }
  24. exit(EXIT_FAILURE);
  25. }
  1. #include <unistd.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. int main()
  7. {
  8. int data_processed;
  9. int file_pies[];
  10. const char some_data[]="";
  11. char buffer[BUFSIZ+];
  12.  
  13. memset(buffer,'\0',sizeof(buffer));
  14.  
  15. if(pipe(file_pies)==)
  16. {
  17. data_processed=write(file_pies[],some_data,strlen(some_data));
  18. printf("Wrote %d bytes\n",data_processed);
  19. data_processed=read(file_pies[],buffer,BUFSIZ);
  20. printf("Read %d bytes: %s\n",data_processed,buffer);
  21. exit(EXIT_SUCCESS);
  22. }
  23. exit(EXIT_FAILURE);
  24. }

13-(1-4)进程管道关于popen(-r-w)及pipe的程序使用实例的更多相关文章

  1. Python和其他进程的管道通信方式--popen和popen2的比较

    目前有一个查询程序 get_user_id 是用C写的,python需要调用这个程序:使用 get_user_id  "用户名" 可以得到输出: "ID0002451&q ...

  2. Linux进程间通信(三):匿名管道 popen()、pclose()、pipe()、close()、dup()、dup2()

    在前面,介绍了一种进程间的通信方式:使用信号,我们创建通知事件,并通过它引起响应,但传递的信息只是一个信号值.这里将介绍另一种进程间通信的方式——匿名管道,通过它进程间可以交换更多有用的数据. 一.什 ...

  3. 管道与popen函数与重定向

    转自:http://www.tldp.org/LDP/lpg/node12.html Pipes the Easy Way! LIBRARY FUNCTION: popen(); PROTOTYPE: ...

  4. 《Unix 网络编程》13:守护进程和 inetd 超级服务器

    守护进程和 inetd 超级服务器 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...

  5. APUE读书笔记-第13章-守护进程

    第13章 守护进程 13.1 引言 *守护进程也称精灵进程(daemon)是生存期较长的一种进程.它们常常在系统自举时启动,仅在系统关闭时才终止.因为它们没有控制终端,所以说它们是在后台运行的.UNI ...

  6. 13.2、进程的通信:Queue、Pipe、

    内容相关: 概念:进程的通信 Queue:创建与使用 Pipe:创建与使用 进程通信的概念 进程的资源空间是相互独立的,一般而言是不能相互访问的.但很多情况下进程间需要互相通信,来完成系统的某项功能. ...

  7. UNP第13章——守护进程

    1. 守护进程的启动方法 (1)系统初始化脚本启动,在系统启动阶段,按照如/etc目录或/etc/rc开头的目录中的某些脚本启动,这些守护进程一开始就有超级用户权限.如inetd,cron,Web服务 ...

  8. SmartSql = Dapper + MyBatis + Cache(Memory | Redis) + ZooKeeper + R/W Splitting + ......

    SmartSql Why 拥抱 跨平台 DotNet Core,是时候了. 高性能.高生产力,超轻量级的ORM.156kb (Dapper:168kb) So SmartSql TargetFrame ...

  9. os.popen('python hello_out.py')中Python程序执行时默认的当前路径为MS-DOS CMD的默认路径

    >>> import os >>> os.getcwd() 'D:\\pythonCode\\pp4e' >>> os.chdir('Stream ...

随机推荐

  1. SQL——找出某一字段中内容相同的数据

    SELECT columnName from dbo.tableName group by columnName having count(*)>1

  2. Delphi 中 COM 实现研究手记(一)

    前言 前些日子用 Delphi 写了一个 Windows 外壳扩展程序,大家知道 Windows 外壳扩展实际上就是 COM 的一种应用 -- Shell COM,虽然整个程序写得还算比较顺利,但写完 ...

  3. 用PHP编写Hadoop的MapReduce程序

    用PHP编写Hadoop的MapReduce程序     Hadoop流 虽然Hadoop是用Java写的,但是Hadoop提供了Hadoop流,Hadoop流提供一个API, 允许用户使用任何语言编 ...

  4. 【解决ViewPager在大屏上滑动不流畅】 设置ViewPager滑动翻页距离

    在项目中做了一个ViewPager+Fragment滑动翻页的效果,在模拟器和小米手机上测试也比较正常.但是换到4.7以上屏幕测试的时候发现老是滑动失效. 因为系统默认的滑动策略是当用户滑动超过半屏之 ...

  5. hdu 1875 畅通project再续

    链接:hdu 1875 输入n个岛的坐标,已知修桥100元/米,若能n个岛连通.输出最小费用,否则输出"oh!" 限制条件:2个小岛之间的距离不能小于10米,也不能大于1000米 ...

  6. linux下的文件权限

    在学习linux中,发现linux系统对文件的权限管理要比windows非常严格. linux下建立新的组:groupadd 组名 linux新建立用户:useradd username 创建用户并分 ...

  7. 为joomla加入�下拉菜单的方法

    用 Joomla! 建站的大多数站长都须要在站点前台使用下拉菜单(dropdown menu),或者叫弹出菜单(slide menu),由于这样能够在有限的页面空间上公布很多其它的导航菜单,而且能够进 ...

  8. Android Paint、Canvas、Matrix使用讲解(一、Paint)

    http://blog.csdn.net/tianjian4592/article/details/44336949 好了,前面主要讲了Animation,Animator 的使用,以及桌面火箭效果和 ...

  9. Codeforces Round #316 (Div. 2A) 570A Elections

    题目:Click here #include <bits/stdc++.h> using namespace std; typedef long long ll; const int IN ...

  10. 感觉Release有时比Debug要健壮

    评估文件夹大小的时候,直接跨线程操作UI界面,Debug崩溃,Release不崩溃. 更多的一种情况是,本机DEBUG下不崩溃,把RELEASE版本到别的机子上,立刻崩溃(登录框的进度条的对象为空,仍 ...