如何让你的程序支持管道输入

什么叫支持管道输入

cmd1 | cmd2 | cmd3

管道符号 | 是怎么做的输入输出

其实很简单,管道是通过stdin和stdout来传给程序的。

说白了,管道符号|就是把cmd1的stdout弄成cm2的stdin

怎么支持管道输入

那就更简单了,支持从stdin读取内容,就支持管道输入了;

同样,支持往stdout输出内容,也就支持管道输出了。

能举个例子吗

#include<iostream>
using namespace std;

int main(int argc, char \*argv[])
{
    string s;

    while (cin >> s)
        cout << "hello " << s << endl;

    return 0;
}

可以演示一下效果吗

[root@CentOS ~]# ls redis-3.0.7 | ./a.out 
hello 00-RELEASENOTES
hello BUGS
hello CONTRIBUTING
hello COPYING
hello deps
hello INSTALL
hello Makefile
hello MANIFESTO
hello README
hello redis.conf
hello runtest
hello runtest-cluster
hello runtest-sentinel
hello sentinel.conf
hello src
hello tests
hello utils

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小狼的世界

[每天五分钟,备战架构师-6]作业管理

系统角度:由程序、数据和作业说明书组成,系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。

1092
来自专栏YG小书屋

磁盘空间引起ES集群shard unassigned的处理过程

2761
来自专栏小樱的经验随笔

CTF---Web入门第五题 貌似有点难

貌似有点难分值:20 来源: 西普学院 难度:难 参与人数:7249人 Get Flag:2519人 答题人数:2690人 解题通过率:94% 不多说,去看题目...

2826
来自专栏进击的程序猿

袖珍分布式系统(四)

本文是Distributed systems for fun and profit的第四部分,本文是阅读该文后的一些记录。

602
来自专栏小樱的经验随笔

CTF---Web入门第十四题 忘记密码了

忘记密码了分值:20 来源: Justatest 难度:中 参与人数:7706人 Get Flag:2232人 答题人数:2386人 解题通过率:94% 找...

3488
来自专栏数据科学学习手札

(数据科学学习手札47)基于Python的网络数据采集实战(2)

  马上大四了,最近在暑期实习,在数据挖掘的主业之外,也帮助同事做了很多网络数据采集的内容,接下来的数篇文章就将一一罗列出来,来续写几个月前开的这个网络数据采集...

1184
来自专栏派森公园

虚拟IP管理系统

4696
来自专栏前端那些事

起步 - 从场景中看父子组件间通信

组件间通信是组件开发的,我们既希望组件的独立性,数据能互不干扰,又不可避免组件间会有联系和交互。 在vue中,父子组件的关系可以总结为props down,ev...

1949
来自专栏Vamei实验室

Linux信号基础

Linux进程基础一文中已经提到,Linux以进程为单位来执行程序。我们可以将计算机看作一个大楼,内核(kernel)是大楼的管理员,进程是大楼的房客。每个进程...

1885
来自专栏数据和云

YH12:一篇文章读懂SCAN

单客户端访问名称(SCAN)是Oracle RAC环境中使用的功能,为客户端提供访问集群中运行的任何Oracle数据库的单一名称。 用户可以将SCAN视为RAC...

3346

扫码关注云+社区