gpt4 book ai didi

c++ - 如何从从 C++ 代码启动的批处理/shell 脚本中获取返回代码

转载 作者:太空狗 更新时间:2023-10-29 23:51:48 24 4
gpt4 key购买 nike

我们有一个 C++ 程序,有时这个程序需要执行用户定义的批处理/shell/ant 脚本。我们无法控制此脚本的运行方式。有没有办法从 C++ 程序中获取返回码?

类似于: 执行 script.sh > status.tmp ?

我们需要同时支持 Windows 和 Linux。

有什么想法吗?

最佳答案

另一个简单的方法是使用 marco WEXITSTATUS 获取返回值。与使用 waitpid 调用获取子进程返回值的方式几乎相同(在基于 Unix 的系统中)。

这是示例程序。我有一个 C/C++ 程序和一个简单的 bash 脚本。

示例 bash 脚本

#!/bin/bash
echo "I am in Script"
exit 5;

示例 C/C++ 程序

int i, ret = system("./b.sh 2>&1 > /dev/null");
i=WEXITSTATUS(ret);
printf("My val= %d\n",i);

输出

./a.out 
My val= 5

如果你想要更高级的方法从脚本中获得多个返回码或者想要一个交互式 session ,那么也许你应该使用 popen

希望这对您有所帮助。

关于c++ - 如何从从 C++ 代码启动的批处理/shell 脚本中获取返回代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18798007/

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