热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

echo{1..50..2}而不是管道进入C中的另一个程序-echo{1..50..2}thanpipeintoanotherprograminC

Ihavethecommand我有命令echo{1..50..2}|.assn3anditprintsout它打印出来Thesumof25numbers

I have the command

我有命令

echo {1..50..2} | ./assn3

and it prints out

它打印出来

The sum of 25 numbers is 625

This is in C and I don't know how ./assn3 reads in what has come from the pipe. Is this in stdin and I use read() or should I be using something else? I am just confused on where the echo goes for assn3 to read it from?

这是在C中,我不知道./assn3如何读取管道中的内容。这是在stdin中我使用read()还是我应该使用其他东西?我只是对于回声从何处读取它而感到困惑?

2 个解决方案

#1


1  

The output of echo {1..50..2} is written to the standard output, so using read() on the file descriptor of the standard input in the program the output is piped to will work.

echo {1..50..2}的输出被写入标准输出,因此在程序中使用标准输入的文件描述符上的read()输出通过管道输出将起作用。

#2


1  

The | operator connects the standard output of the command on the LHS to the standard input of the command on the RHS.

|操作员将LHS上的命令的标准输出连接到RHS上的命令的标准输入。

The echo command (in Bash 4, not Bash 3) writes the odd numbers from 1 to 49 on a single line to its standard output. The assn3 program must read its standard input to get the data. Underlying everything will be the read() system call, but the program probably uses the standard I/O library (fgets() or getchar() or scanf() or similar functions) to read the data.

echo命令(在Bash 4中,而不是Bash 3中)将单行上从1到49的奇数写入其标准输出。 assn3程序必须读取其标准输入才能获取数据。所有内容都是read()系统调用,但程序可能使用标准I / O库(fgets()或getchar()或scanf()或类似函数)来读取数据。


推荐阅读
author-avatar
arliejun
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有