我有一个相对简单的问题,但我似乎做不到。我需要做的是在 C++ 程序中使用 system
函数从 bash 脚本中检索一个整数。我的理解是 system
默认返回一个整数,所以我应该可以做类似的事情
int returnedVal = system ("myscript");
然而,主要问题是 bash 脚本没有返回值,只有一个介于 0 到 255 之间的标志,表示它们是否成功。我曾尝试做一些事情,比如在脚本中写入一个文本文件,然后读入一个文件,但这导致了一些问题,我想尽可能避免这种情况。有谁知道最简单的方法吗?非常感谢。
最佳答案
POSIX exit(3) 说:
The value of status may be 0, EXIT_SUCCESS, EXIT_FAILURE, [CX] [Option Start] or any other value, though only the least significant 8 bits (that is, status & 0377) shall be available to a waiting parent process.
这意味着任何大于 8 位可能表示的值都不能通过调用 exit
从正常进程终止中退出,然后父级无法捕获更多。
更多关于这个。不要使用返回值来传输一些数据,它主要是为了表示成功或失败的状态。 0值表示成功,其他为失败。
如果您希望您的进程进行通信,那么您需要一些通信 channel (文件、管道等)。
关于c++ - 从 C++ 中的系统函数获取一个整数(大于 255),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46432302/