尝试在附加模式下将文件打开到标准输出,如下所示:
int f2;
f2 = open(STDOUT_FILENO,O_APPEND|O_CREAT);
但此代码无效(打开后f2 == - 1)。问题是什么?还有另一种方法吗?
答案 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;); //只写