Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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++ 从其他程序运行时如何重定向输出?_C++_Io Redirection - Fatal编程技术网

C++ 从其他程序运行时如何重定向输出?

C++ 从其他程序运行时如何重定向输出?,c++,io-redirection,C++,Io Redirection,我有一个可执行程序,从中运行另一个名为main.cpp的程序 Main.cpp都有stdout和stderr消息 我需要将stdout和stderr消息重定向到一个文件 我尝试了不同的选择,但都没有帮助 这是executable.cpp 我尝试此操作时在终端中获得了所有输出,但创建了空文件some.txt system("g++ -g main.cpp -o a.out"); system("./a.out &>> some.txt"); 只有stderr消息保存在some

我有一个可执行程序,从中运行另一个名为main.cpp的程序

Main.cpp都有stdout和stderr消息

我需要将stdout和stderr消息重定向到一个文件

我尝试了不同的选择,但都没有帮助

这是executable.cpp

我尝试此操作时在终端中获得了所有输出,但创建了空文件some.txt

system("g++ -g main.cpp -o a.out");
system("./a.out &>> some.txt");
只有stderr消息保存在some.txt中,但stdout消息在终端上显示

system("./a.out 2>> some.txt");

如何在运行程序时一次将这两条消息保存到其他文件。

请尝试
/a.out 2>&1>>some.txt
/a.out>>some.txt 2>&1
。其中只有一个会起作用,但我现在不确定是哪一个。。。或者应该只有
2>&1
,我不太习惯使用追加输出重定向…试试这个:系统(“/a.out>>some.txt 2>&1”)@slepic重定向操作符从左到右进行处理。因此,首先重新打开stdout以追加(
>some.txt
),然后重新打开stderr以追加stdout:(
2>&1
)@Botje是的,当然,我只是想给出一个快速的答案,不确定正确的组合,因为我不经常这样做,但我确信其中一种组合是正确的:)我会在思考或尝试之后找出答案,但我认为OP可以自己尝试……谢谢大家,
system(“/a.out>>some.txt 2>&1”)这部分起作用,但问题是main.cpp程序中的输出语句没有附加到该文件中。文件中可以看到所有错误消息,但无法看到执行的语句。