当前位置:首页>开发>正文

C语言中文件重定向 如何将标准错误输出重定向到文件

2023-07-02 13:35:21 互联网 未知 开发

 C语言中文件重定向 如何将标准错误输出重定向到文件

C语言中文件重定向

C语言中可以通过freopen函数实现文件的重定向,即把一个打开的文件,重定向到另外一个文件上。

freopen是被包含于C标准库头文件中的一个函数,用于重定向输入输出文件。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证文件是可靠的。
函数原型为

FILE *freopen( const char *filename, const char *mode, FILE *stream )

该函数可以用来重定向标准输入输出,比如将标准输出stdout重定向到out.txt的语句为
stdout = freopen("out.txt", "w", stdout)
执行该语句后,凡是通过标准输出语句,如printf, puts, putchar等输出到标准输出的内容,均会被写入到out.txt中。

如何将标准错误输出重定向到文件

Linux下默认有两种输出流:1 - 标准输出流2 - 标准错误输出流Linux下一切皆文件,这里的1和2表示的就是输出设备文件的文件描述符。默认情况下,无论是标准输出还是标准错误输出,都是输出到终端显示的。但也可以通过重定向输出到其他地方,如文件。这就是输出重定向。并且,这两种输出流可以被分别重定向。 下面举例:假设文件file.txt在当前目录下并不存在,执行下面的命令:ls file.txt 2>log.txt这样就将错误输出重定向到文件log.txt中。ls file.txt 2>/dev/null这样就什么都看不到,将标准错误输出流重定向到/dev/null中,丢弃了。ls file.txt >/dev/null只将标准输出重定向到/dev/null中,这样仍然可以在终端窗口看到错误输出。注:>/dev/null 等同于 1>/dev/null,前面的1可省略。

如何重定向printf()到文件,然后回到控制台

重定向,就是: 把 原来的 cin 从键盘输入 改为从文件输入。 把 原来的 cout 向屏幕输出 改为输出到文件。 例如: cin>>line 原来要从键盘拍入。现在自动到某文件读取,语句还是 cin>>line 不变。 cout

如何重定向标准输出和标准错误到一个文件中

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 <&- 把关闭标准输入

最新文章