如何将文件打开到标准输出并附加到C中

时间:2017-01-26 04:26:09

标签: c

尝试在附加模式下将文件打开到标准输出,如下所示:

int f2;
f2 = open(STDOUT_FILENO,O_APPEND|O_CREAT);

但此代码无效(打开后f2 == - 1)。问题是什么?还有另一种方法吗?

2 个答案:

答案 0 :(得分:1)

鉴于stdout已经打开了您想要的标志,您不需要(也不应该)尝试实际打开它。如果您需要stdout的重复描述符,只需use dup

#include <unistd.h>

int f2 = dup(STDOUT_FILENO);

注意:两个句柄共享文件指针,因此您可以独立地lseek它们。幸运的是,由于这是stdout我们正在谈论,&#34;寻求&#34;无论如何,这是一个毫无意义的概念。

答案 1 :(得分:-1)

代码中存在语法错误 首先,您必须定义文件指针。然后定义读或写选项 例如 FILE * in_file = fopen(&#34; name_of_file&#34;,&#34; r&#34;); // 只读           FILE * out_file = fopen(&#34; name_of_file&#34;,&#34; w&#34;); //只写

相关问题