UNIX重定向

nickycheung_ 2011-11-07 05:51:28
请问./a.out < ./abc 和 cat < ./abc | ./a.out有什么区别?各自的执行过程是怎样的?
...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphiwcdj 2011-11-08
  • 打赏
  • 举报
回复
效果一样但实现原理不一样
delphiwcdj 2011-11-08
  • 打赏
  • 举报
回复
效果一样但实现原理不一样
nickycheung_ 2011-11-07
  • 打赏
  • 举报
回复
明白什么意思了。还有就是顺便问以下,这个cat filename (或者cat < filename,这两个应该效果一样吧?)是不是执行完之后,该文件中的offset就到了文件末尾了?
ljc007 2011-11-07
  • 打赏
  • 举报
回复
管道会产生一个subshell
qq120848369 2011-11-07
  • 打赏
  • 举报
回复
./a.out < ./abc 描述符0重定向到文件./abc
cat < ./abc | ./a.out 父进程描述符0重定向到文件./abc,描述符1重定向到管道Pipe[1].
子进程./a.out的描述符0重定向到管道pipe[0].

最终两个命令效果一样,也就是a.out进程从描述符0读./abc里的数据.


goodmrning 2011-11-07
  • 打赏
  • 举报
回复
1楼正解
justkk 2011-11-07
  • 打赏
  • 举报
回复
效果一样的吧
都是从文件abc中读取输入

18,777

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧