gpt4 book ai didi

c++ - 通过 system() 执行外部程序无法正常运行

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:26 33 4
gpt4 key购买 nike

我尝试通过调用 system() 调用中的命令从我的代码中调用一个程序(ncbi blast,对于那些需要知道的人)。

如果我直接在 shell 中执行字符串,它会按预期工作,但如果我通过 system() 尝试相同的字符串,程序返回的速度会快得多,但没有预期的结果。输出文件已创建,但文件大小为 0。返回的错误代码也为 0。我什至尝试附加“> output.log 2> error.log”,但这些文件没有创建。

估计跟环境变量或者路径有关...

输出文件名是通过-o 命令行参数给出的,不是输出重定向。

我读到一些关于 popen 命令可能更适合我的用例的内容,但我找不到它,它来自哪个库?

最佳答案

此类问题最常见的原因是 ~/.bashrc 中的环境变量设置不正确。

你应该能够通过执行看到 ncbi 不满意的地方

$SHELL -c '<exact string you pass to system()>'

另一种常见的调试方法是使用 strace。执行:

strace -fo /tmp/strace.out ./myProgram

并在 /tmp/strace.out 中寻找线索。

关于c++ - 通过 system() 执行外部程序无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1612451/

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