当前位置:  技术问答>linux和unix

apue书中一个例子的疑惑

    来源: 互联网  发布时间:2016-06-08

    本文导语:  Figure 3.10 所示程序后面给的运行结果看不懂。      $ ./a.out 0  temp.foo      $ cat temp.foo      write only      $ ./a.out 2 2>>temp.foo      write only, append      $ ./a.out 5 5temp.foo      read write 第一个不...

Figure 3.10 所示程序后面给的运行结果看不懂。
     $ ./a.out 0  temp.foo
     $ cat temp.foo
     write only
     $ ./a.out 2 2>>temp.foo
     write only, append
     $ ./a.out 5 5temp.foo
     read write
第一个不知道什么意思,实在搞不懂是怎么重定向的。
第二个没有重定向的时候结果是read write,但加上之后就成了write only 了,为什么?

可能是重定向没有理解好。

|
只要稍加修改,你就明白了,在前兩條命令的大於號和小於號左側分別添加0和1。
可以把大於號和小於號想成箭頭,系統在箭頭左側有如下發現:

$ ./a.out 0 0 temp.foo # 箭頭指向temp.foo,因此數據只能從文件描述符1流向temp.foo,即write only。

$ ./a.out 2 2>> temp.foo # 類似上例,但因為是兩個大於號,因此是write only, append。

$ ./a.out 5 5 temp.foo # 箭頭是雙向的,因此是read write。

|
这个程序是测试的是参数argv[1]的访问模式.
第一个是把/dev/tty重定向作为程序的标准输入,然后测试标准输入(参数是0)的访问模式.显然,/dev/tty为只读
第二个如果没有重定向是测试标准输出1的访问模式,默认的标准输出是终端屏幕,是可读写的.加了重定向,标准输出就变成了文件temp.foo, 这时结果就取决于temp.foo文件的访问模式了.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 下载了APUE源码,怎么打不开啊?
  • 文件名为“apue.tar.Z”的文件在UNIX下怎么打开?大家帮帮忙
  • APUE第2版的例2-1的疑问
  • apue书上的概念,读过这本书的请进
  • 刚学完apue,大家给个建议
  • 求apue的课后答案~~~~~~~~~~~~~
  • APUE 看完之后,拿什么练练手?
  • apue.h的问题
  • APUE+macro
  • apue中的一个问题
  • APUE相关章节不容易理解。
  • apue书的的信号函数,看不懂
  • APUE中 system函数的实现中的问题
  • 哪位兄弟在看apue?相互交流一下
  • APUE中“信号”一节的问题
  • apue 上的 Figure3.10运行后,输出怎么是空白
  • apue学习问题 第八章 进程控制 相关
  • apue page113
  • 关于unix环境高级编程的apue的问题
  • 不同缓冲区长度读操作 APUE2e


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3