命令行程序的返回值
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
以上是关于命令行程序的返回值的主要内容,如果未能解决你的问题,请参考以下文章
shell脚本调JAVA程序,获取JAVA程序返回值并echo输出