标准库中的管道操作

-----------------------------------------------------------------------------------------------------------

#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(buff,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);
}

时间: 2024-10-18 13:14:23

标准库中的管道操作的相关文章

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

1 stdio.h是c标准库中的标准输入输出库 2 在c++中调用的方法 直接调用即可,但是最好在函数名前面加上::,以示区分类的内部函数和c标准库函数. 3 c标准输入输出库的使用 3.1 核心结构体 FILE结构体 打开一个文件的时候获取它,然后就可以不用管它了. 3.2 核心方法 3.2.1 fopen 第一个字符串是文件的路径. 第二个参数是一个字符串,表示操作该文件的模式,"rb"表示read binary,即以二进制的形式来读该文件. 3.2.2 fseek 第一个参数是F

STL笔记(6)标准库:标准库中的排序算法

STL笔记(6)标准库:标准库中的排序算法 标准库:标准库中的排序算法The Standard Librarian: Sorting in the Standard Library Matthew Austern http://www.cuj.com/experts/1908/austern.htm?topic=experts 用泛型算法进行排序    C++标准24章有一个小节叫“Sorting and related operations”.它包含了很多对已序区间进行的操作,和三个排序用泛型

C++标准库中next_permutation和pre_permutation实现原理

标准库中next_permutation函数:找当前序列中元素排列的下一个排列,按照字典顺序进行排列.比如说数组排列"123",那么它的下一个排列为"132",并且返回true.如果当前序列没有下一个排列,我们返回false,且把当前排列置为最小的排列,比如说:排列"321",因为该排列已经是最大的排列,所以它没有下一个排列.我们把该排列置为"123",并且返回false. 标准库实现两个重载版本的next_permutati

swift标准库中常见的55个协议。

swift标准库中常见的55个协议. 从协议名结尾字面上我们可以将Protocol分为able.Type.Convertible 三类 从功能角度上来讲的话可以总结为: 功能添加型(able结尾) "可以做什么?" 举例: Hashable: 给你的实例添加一个生成哈希值的功能. Equatable: 给你的实例添加一个判断相等的功能. 2.类型对比型(Type结尾) "这个实例是什么?" 举例: CollectionType: swift中所有的集合类型都要遵守的

参考C++STL标准库中对了的使用方法

http://www.cppblog.com/zhenglinbo/archive/2012/09/18/191170.html 参考:http://www.cppblog.com/zhenglinbo/archive/2012/09/18/191170.html 当然是使用c++中的STL 的queue啦.下面简要介绍一下使用方法. 1 准备工作 头文件 #include<queue> 2 声明和定义的方法.STL的队列是泛型模板,支持任何内置和构造类型. 比如对于刚才那个牛奶问题.我把状态

Swift标准库中的协议_012_swift协议

//: Playground - noun: a place where people can play import UIKit //--Swift标准库中的协议---// //1.实例的比较:判断两个实例值是否相同 let a = 4, b = 4 a == b //(Int类型的比较) //自定义结构体类型,进行是否相等的比较 struct Games { var winCount : Int var loseCount : Int } let g1 = Games(winCount: 2

【C语言】编写一个函数reverse_string(char * string)(递归实现),将参数字符串中的字符反向排列,不能使用C函数库中的字符串操作函数。

//编写一个函数reverse_string(char * string)(递归实现) //实现:将参数字符串中的字符反向排列. //要求:不能使用C函数库中的字符串操作函数. #include <stdio.h> #include <assert.h> void reverse_string(char const * string) { assert( string != NULL ); if( *string != '\0' ) { string++; reverse_stri

C零基础视频-28-C标准库中常见的字符串操作函数

目录 字符串的特殊性 字符串比较 获取字符串长度 复制字符串 连接字符串 字符串的特殊性 字符串不是基本数据类型.因此,像操作基本数据类型那样操作,可能会失败: #include <stdio.h> int main(int argc, char* argv[]) { char* szHello = "Hello"; char chAry[] = "Hello"; printf("%s, %s\r\n", szHello, chAry

《深入实践C++模板编程》之六——标准库中的容器

1.容器的基本要求 a.并非所有的数据都可以放进容器当中.各种容器模板对所存数据类型都有一个基本要求——可复制构造.将数据放进容器的过程就是通过数据的复制构造函数在容器内创建数据的一个副本的过程. b.容器中必须有若干与所存数据类型有关的嵌套定义类型. C::value_type 容器所存数据类型 C::reference 容器数据的引用类型 C::const_reference 容器数据的只读引用类型 C::size_type 容器容量类型,通常是一个无符号整数类型 c.除嵌套类型定义外,容器