unix cat问题

看unix环境高级编程里51页有句
cat < /etc/motd | ./a.out
查cat后还是不能明白这句话什么意思,谢谢指点。

作者: 河边洗澡   发布时间: 2011-03-01

来源:csdn fox000002 http://topic.csdn.net/u/20081114 ... 5-8c4e0f1edfdd.html
cat < /etc/motd | ./a.out

# 通过 I/O 重定向,将文件作为 cat 的标准输入,由 cat 输出
# 再通过管道作为 a.out 的输入
# a.out 的输入是管道,这个没法 seek


./a.out < /etc/motd

# 通过 I/O 重定向,将文件作为 a.out 的标准输入
# STDIN_FILENO 现在对应的是一个文件,可以 seek

作者: 河边洗澡   发布时间: 2011-03-01

cat后应该跟cat的目标,没有目标应该由键盘输入;
cat < /etc/motd的意思是连键盘输入也不用了,用/etc/motd的文件内容来代替键盘输入的内容
“|”表示把它送到a.out中去,作为a.out的一个参数。

实际上这句话的意思就是:把motd里面的内容,作为a.out的参数。

作者: lsstarboy   发布时间: 2011-03-01