当前位置: 技术问答>linux和unix
apue里的一个例子 关于非常能体会、
来源: 互联网 发布时间:2016-09-15
本文导语: [code=C/C++] [#include "apue.h" #include int main(int argc, char *argv[]) { int val; if (argc != 2) err_quit("usage: a.out "); if ((val = fcntl(atoi(argv[1]), F_GETFL, 0)) >temp.foo write only, append...
[code=C/C++]
[#include "apue.h"
#include
int
main(int argc, char *argv[])
{
int val;
if (argc != 2)
err_quit("usage: a.out ");
if ((val = fcntl(atoi(argv[1]), F_GETFL, 0)) >temp.foo
write only, append
$ ./a.out 5 5temp.foo
read write
这四种 运行方式 怎么理解 特别是第三种 和第四种 。另外 $ ./a.out 2 2>>temp.foo 这个传入的是2 不是应该是O_RDWR吗 怎么是 write only 。
[#include "apue.h"
#include
int
main(int argc, char *argv[])
{
int val;
if (argc != 2)
err_quit("usage: a.out ");
if ((val = fcntl(atoi(argv[1]), F_GETFL, 0)) >temp.foo
write only, append
$ ./a.out 5 5temp.foo
read write
这四种 运行方式 怎么理解 特别是第三种 和第四种 。另外 $ ./a.out 2 2>>temp.foo 这个传入的是2 不是应该是O_RDWR吗 怎么是 write only 。
|
b
>>c
d
shell对这四种重定向方式的理解不同,
第1种是接受来自a的输入,但并不输出到a, 所以只要read
第2种是清空b,然后输出到b,但不从b读取,所以只要write
第3种是追加到c,但不从c读取,所以要write+append
第4种是从d读取,也写入到d,所以read+write
>>c
d
shell对这四种重定向方式的理解不同,
第1种是接受来自a的输入,但并不输出到a, 所以只要read
第2种是清空b,然后输出到b,但不从b读取,所以只要write
第3种是追加到c,但不从c读取,所以要write+append
第4种是从d读取,也写入到d,所以read+write
|
大部分情况下,
文件描述符1和2都是write only的。
文件描述符1和2都是write only的。