永发信息网

linux 怎么把标准输出重定向其他文件

答案:2  悬赏:80  手机版
解决时间 2021-02-23 10:00
  • 提问者网友:动次大次蹦擦擦
  • 2021-02-23 02:37
linux 怎么把标准输出重定向其他文件
最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-02-23 03:16
command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中(追加)
command 1 > fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把把标准错误重定向到一个文件中
command 2 >> filename 把把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中(追加)
command < filename > filename2把command命令以filename文件作为标准输入,以filename2文件作为标准输出
command < filename 把command命令以filename文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到delimiter分界符
command <&m 把把文件描述符m作为标准输入
command >&m 把把标准输出重定向到文件描述符m中
command <&- 把关闭标准输入
全部回答
  • 1楼网友:你可爱的野爹
  • 2021-02-23 03:58
我没怎么改,编译运行好像正常? #include&lt;stdio.h&gt; #include&lt;unistd.h&gt; int main(int argc,char **argv) { file * fd; fd = fopen("log.txt","a+"); dup2(fileno(fd), 1); dup2(fileno(fd), 2); int i=0; for(i=0;i&lt;5;i++) { printf("output to stdout!\n"); fprintf(stderr,"output to stderr!\n"); sleep(2); } return 0; } 结果: [ksl@myhost ~]$ cat log.txt output to stderr! output to stderr! output to stderr! output to stderr! output to stderr! output to stdout! output to stdout! output to stdout! output to stdout! output to stdout! 先输出了stderr的原因是,stdout在sleep之后不会立刻输出,而是等到进程要关闭的时候,所以之前每次都会先输出stderr,等到进程结束的时候才把stdout的内容给刷出来。我这边显示是这样的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯