gpt4 book ai didi

Unix 上的 C++ : Redirecting Shell Output

转载 作者:行者123 更新时间:2023-11-30 03:03:57 24 4
gpt4 key购买 nike

我有一个编译 test.cpp 的命令,应该将输出存储在输出文件中。这是我生成的 cmd 的示例:

g++ tmp/test.cpp -o tmp/test &> tmp/compile.out

当我使用 system() 时,它不起作用。即使它创建了输出文件,它仍然将所有内容打印到主控制台窗口。当我在终端中执行它时,它工作得很好。

我也尝试使用 popen()fgets() (只是从 here 复制代码)但同样发生了。我可能只是 fork 我的进程并使用 freopen 或其他东西,但我有套接字和多个线程在后台运行。我想它们也会被复制,这不好。

知道为什么会失败吗?

最佳答案

根据 system 的手册页,它调用 sh,这是标准的 bourne shell(不是 bash,Bourne Again SHell)。而且 bourne shell 不理解 &>。所以您可能需要使用旧样式:

g++ tmp/test.cpp -o tmp/test >tmp/compile.out 2>&1

关于Unix 上的 C++ : Redirecting Shell Output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com