目录

理论

例子


理论

stdio.h里面有标志库管道操作

FILE *popen(const char* cmdstring, const char *type);返回值:成功返回文件指针,出错返回NULL;

int pclose(FILE *fp);

返回值:cmdstring的终止状态,出错返回-1

注意:使用pepen()创建管道必须使用pclose()关闭!

popen内部原理:

例子

源码如下:

#include <stdio.h>
#include <stdlib.h>
#include <memory.h>int main(void){FILE *fp;//命令执行的结果放置在fp指向的结构体缓存中fp = popen("cat /etc/passwd", "r");char buf[512];memset(buf, 0, sizeof(buf));while(fgets(buf, sizeof(buf), fp) != NULL){printf("%s", buf);}pclose(fp);printf("-------------------------------------\n");//wc命令统计数据fp = popen("wc -l", "w");//向fp指向的结构体缓存中写入数据fprintf(fp, "1\n2\n3\n");pclose(fp);exit(0);
}

运行截图如下:

-l为统计多少行

Linux学习笔记-标准库中的管道操作相关推荐

  1. c/c++标准库中的文件操作总结

    1 stdio.h是c标准库中的标准输入输出库 2 在c++中调用的方法 直接调用即可,但是最好在函数名前面加上::,以示区分类的内部函数和c标准库函数. 3 c标准输入输出库的使用 3.1 核心结构 ...

  2. go学习笔记-标准库

    标准库 名称 摘要 archive tar tar包实现了tar格式压缩文件的存取.zip zip包提供了zip档案文件的读写服务. bufio bufio 包实现了带缓存的I/O操作. builti ...

  3. Go学习笔记—标准库Context

    标准库Context ​ 由于goroutine没有父子关系,多个goroutine都是被平行的调度,所以在拉起多个goroutine后,程序的执行模型并没有维护树状结构的goroutine树,所以无 ...

  4. Linux学习笔记-动态库的生成

    库分为两种: (1)共享库 Shared Library  (2)静态库 Static Library 通常共享库也称为动态库. 使用g++命令来生成动态库编译,生成.o文件 (编译选项 ‐fPIC  ...

  5. Linux学习笔记(更新中~)

    Linux 1 Introduce 适用人群: 运维工程师(系统运维.应用运维.DBA) 开发工程师(内核/驱动开发.软件开发.嵌入式开发 ) 架构师(进阶,性能调优.故障处理.-) 应用场景: We ...

  6. linux学习笔记:06-ubuntu中挂载U盘

    U盘挂载 Linux的磁盘管理和window有很大区别,在windo下会有分区的概念,但在Linux中一般不叫做分区而叫做挂载点,挂载点就是将一个硬盘的一部分做成文件夹的形式,这个文件夹的名字就是挂载 ...

  7. Linux学习笔记-动态库的使用

    example.h libexample.so 如下图所属: 现在写一个.cpp 源码如下: main.cpp #include "example.h"int main(){pri ...

  8. linux中的echo%3e文件,Linux学习笔记-shell脚本中${}的使用方法

    ${} 除了做${var}变量替换,还有什么功能呢? # 举例说明 [[email protected] ~]$ file=/dir1/dir2/dir3/my.file.txt # 变量替换 [[e ...

  9. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

最新文章

  1. Android targetSdkVersion 原理
  2. linux 信号灯超时时间到,急!!信号灯超时时间已到错误又出来了!!!!
  3. 知识库问答中的关系识别研究回顾
  4. Network下方什么请求也没有_HTTP的响应与请求
  5. EF架构~codeFirst从初始化到数据库迁移
  6. 那些年学过的Hibernate笔记
  7. CentOS 7 怎样自动连接网络
  8. Docker系列教程27-在生产环境中使用Docker Compose
  9. 面试题之TCP三次握手和四次挥手详解
  10. Web前端主流框架优缺点有哪些?小编帮你分析
  11. php好用的中文转拼音的类库
  12. java中线,使用Voronoi图查找多边形的中线
  13. Cent os 安装 JDK , 配置JAVA_HOME
  14. 51单片机“叮咚”门铃
  15. 华为服务器新机安装配置,安装驱动,制作raid,raid5
  16. python人民币小写转大写_Python小程序 -- 人民币小写转大写辅助工具
  17. linux线程池的使用
  18. Linux学习进阶路线
  19. ros与华为交换机 vlan配置思路及两种dhcp配置方法
  20. win7计算机管理对话框功能,win7如何打开运行对话框_win7电脑系统运行窗口怎么打开...

热门文章

  1. Windows 7 IIS HTTP 错误 403.14 - Forbidden
  2. How to include library manually into maven local repository?
  3. CentOS上搭建Nginx + Mono 运行 asp.net
  4. 潜伏研发群一个月,我发现了程序员不为人知的秘密!这也太可爱了吧
  5. 如何在C++中嵌入JAVA程序
  6. 聊聊2019年的web前端
  7. mysql映射mapper_Mybatis中Mapper映射文件使用详解
  8. java shirofilter_Spring项目集成ShiroFilter简单实现权限管理
  9. 不加载执行js_前端性能优化:preload 预加载页面资源
  10. vscode 新版eslint自动修复_VSCODE 配置eslint规则和自动修复