Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在重定向之前读取标准输出? 我试图从C++中的STDUT中读取,但是我发现的每一个例子都意味着使用管道和 DUP ,我想知道是否有办法避免它们。比如说: cout << "Hello world" << endl; /* ... */ read(STDOUT_FILENO, buffer, MAX_LEN) cout_C++_Linux_Stdout - Fatal编程技术网

是否可以在重定向之前读取标准输出? 我试图从C++中的STDUT中读取,但是我发现的每一个例子都意味着使用管道和 DUP ,我想知道是否有办法避免它们。比如说: cout << "Hello world" << endl; /* ... */ read(STDOUT_FILENO, buffer, MAX_LEN) cout

是否可以在重定向之前读取标准输出? 我试图从C++中的STDUT中读取,但是我发现的每一个例子都意味着使用管道和 DUP ,我想知道是否有办法避免它们。比如说: cout << "Hello world" << endl; /* ... */ read(STDOUT_FILENO, buffer, MAX_LEN) cout,c++,linux,stdout,C++,Linux,Stdout,简单的答案是你不能从STDOUT\u FILENO读取。对的调用将始终返回EBADF,因为STDOUT\u FILENO无效。这就是为什么人们使用pipe和dup 如果你正在寻找一个C++的方法来解决我想做的事情,请检查答案:如果你用“你自己想要的”来替换 STD::CUT//Cuff>的输出缓冲区,你可以自己操作它。不幸的是,这将只捕获到std::cout的输出操作,而不会直接调用write(STDOUT\u FILENO,…)、printf(…)等等。(以我的经验来看)这也更不方便。简单的

简单的答案是你不能从
STDOUT\u FILENO
读取。对的调用将始终返回
EBADF
,因为
STDOUT\u FILENO
无效。这就是为什么人们使用
pipe
dup



<>如果你正在寻找一个C++的方法来解决我想做的事情,请检查答案:如果你用“你自己想要的”来替换<代码> STD::CUT//Cuff>的输出缓冲区,你可以自己操作它。不幸的是,这将只捕获到
std::cout
的输出操作,而不会直接调用
write(STDOUT\u FILENO,…)
printf(…)
等等。(以我的经验来看)这也更不方便。

简单的答案是你不能从
STDOUT\u FILENO
读取。对的调用将始终返回
EBADF
,因为
STDOUT\u FILENO
无效。这就是为什么人们使用
pipe
dup



<>如果你正在寻找一个C++的方法来解决我想做的事情,请检查答案:如果你用“你自己想要的”来替换<代码> STD::CUT//Cuff>的输出缓冲区,你可以自己操作它。不幸的是,这将只捕获到
std::cout
的输出操作,而不会直接调用
write(STDOUT\u FILENO,…)
printf(…)
等等。(以我的经验来看)它也更不方便。

你为什么要读STDOUT?这是一个用于写入的输出通道。可能与的重复-特别是对于该问题。但是-而不是
cout
-为什么不流到
ostringstream
?例如,为什么不读取STDOUT?它是一个用于写入的输出通道。可能的重复-特别是对于该问题。但是-而不是
cout
-例如,为什么不流到
ostringstream