命令行程序的返回值

Posted

技术标签:

【中文标题】命令行程序的返回值【英文标题】:Return value of a command line program 【发布时间】:2011-07-13 23:18:39 【问题描述】:

我有一个问题,我不知道我的程序是否正确。 请告诉我你的想法?

问题:在命令行中创建一个处理文件program,program返回的是处理文件的个数。

我的程序:在 main() 函数中,我返回已处理文件的数量。

正确吗?如果正确,如何从另一个程序中获取此值?

请帮帮我?

【问题讨论】:

请注意,返回作为退出状态处理的事物计数是危险的,因为largest value you can return in an exist status is 255。 【参考方案1】:

main() 可以通过 exit(code) 函数向操作系统返回“退出代码”

#include <cstdlib>
#include <iostream>
using namespace std;
int main()

    cout<<"Program will exit";
    exit(1); // Returns 1 to the operating system

    cout<<"This line is never executed";

然后在调用者程序中,可以查看返回的退出代码,例如(调用者是一个批处理文件):

@echo off
call yourapp.exe
echo Exit Code = %ERRORLEVEL%

【讨论】:

【参考方案2】:

没错。程序的结果码是main函数的返回值。

【讨论】:

【参考方案3】:

您可以简单地使用 return。 Success 的常见返回值为 0,其他任何值都被视为某种错误。

int main()

 ...

return 0;

要获取另一个程序的值,您可以使用系统调用, http://en.wikipedia.org/wiki/System_(C_standard_library)

或使用 bash 脚本,例如:

已编辑,感谢 Evan Teran:

  myProgram; 
    V=$?; 
    program1 $V

【讨论】:

这不是您获得将分配输出的程序的返回值的方式(如stdout$v)。要获得返回值,您应该这样做:myProgram; V=$?; program1 $V

以上是关于命令行程序的返回值的主要内容,如果未能解决你的问题,请参考以下文章

在命令行处理 console 应用执行的返回值

shell脚本调JAVA程序,获取JAVA程序返回值并echo输出

bash命令行返回值和展开

python执行命令行操作

bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

windows命令行获取网卡地址--说说getmac的返回值正确截取