我有命令
echo {1..50..2} | ./assn3
并打印出来
The sum of 25 numbers is 625
这是在C中,我不知道./assn3
如何读取来自管道的内容。这是stdin
,我使用read()
还是应该使用其他内容?我只是对assn3
的回声从何处读取而感到困惑?
答案 0 :(得分:1)
echo {1..50..2}
的输出被写入标准输出,因此在程序中标准输入的文件描述符上使用read()
输出通过管道输出将起作用。
答案 1 :(得分:1)
|
运算符将LHS上的命令的标准输出连接到RHS上的命令的标准输入。
echo
命令(在Bash 4中,而不是Bash 3中)将单行上从1到49的奇数写入其标准输出。 assn3
程序必须读取其标准输入才能获取数据。所有内容都是read()
系统调用,但程序可能使用标准I / O库(fgets()
或getchar()
或scanf()
或类似函数)来读取数据