当前位置: 技术问答>linux和unix
./a.out 0 < /dev/tty是什么意思啊
来源: 互联网 发布时间:2017-03-18
本文导语: 1 #include 2 #include 3 #include 4 5 int 6 main(int argc, char *argv[]) 7 { 8 int accmode, val; 9 10 // printf("%s,%s",argv[0],argv[1]); 11 12 if (argc != 2) 13 ...
1 #include
2 #include
3 #include
4
5 int
6 main(int argc, char *argv[])
7 {
8 int accmode, val;
9
10 // printf("%s,%s",argv[0],argv[1]);
11
12 if (argc != 2)
13 err_quit("usage: a.out ");
14
15 if ( (val = fcntl(atoi(argv[1]), F_GETFL, 0)) 的形式来定义(其中%表示文件描述符:1为标准输出stdout、2为标准错误stderr)!系统默认%值是1,也就是1>,而1>可以简写为>,也就是默认为>。
#ls >redout.lst (等同于ls 1>redout.lst,标准输出重定向)
系统先执行>redout.lst,生成一个空文件,然后系统执行ls,再把结果重定向到redout.lst。这时在终端看不到任何信息,但是#more redout.lst可以看到a1、a2、a3、a4和redout.lst。
#./ourgame 2>rederr.lst (标准错误重定向)
因为系统找不到执行脚本ourgame,产生错误,但并不是显示在终端上,而是把错误信息重定向到了rederr.lst。
#more rederr.lst
sh: ourgame: not found.
2 #include
3 #include
4
5 int
6 main(int argc, char *argv[])
7 {
8 int accmode, val;
9
10 // printf("%s,%s",argv[0],argv[1]);
11
12 if (argc != 2)
13 err_quit("usage: a.out ");
14
15 if ( (val = fcntl(atoi(argv[1]), F_GETFL, 0)) 的形式来定义(其中%表示文件描述符:1为标准输出stdout、2为标准错误stderr)!系统默认%值是1,也就是1>,而1>可以简写为>,也就是默认为>。
#ls >redout.lst (等同于ls 1>redout.lst,标准输出重定向)
系统先执行>redout.lst,生成一个空文件,然后系统执行ls,再把结果重定向到redout.lst。这时在终端看不到任何信息,但是#more redout.lst可以看到a1、a2、a3、a4和redout.lst。
#./ourgame 2>rederr.lst (标准错误重定向)
因为系统找不到执行脚本ourgame,产生错误,但并不是显示在终端上,而是把错误信息重定向到了rederr.lst。
#more rederr.lst
sh: ourgame: not found.
|
其实根据程序就可以看出,a.out应该带一个参数,那2就是参数,后面一个2/3就代表描述符了,呵呵