我有一個問題,我不知道我的程序是否正確。 請讓我知道您的想法?命令行程序的返回值
問題:在命令行中創建一個進程文件程序,程序返回的是已處理文件的編號。
我的程序:在main()函數中,我返回處理文件的數量。
它是正確的嗎?如果正確,我怎樣才能從另一個程序中獲得這個值?
請幫幫我嗎?
我有一個問題,我不知道我的程序是否正確。 請讓我知道您的想法?命令行程序的返回值
問題:在命令行中創建一個進程文件程序,程序返回的是已處理文件的編號。
我的程序:在main()函數中,我返回處理文件的數量。
它是正確的嗎?如果正確,我怎樣才能從另一個程序中獲得這個值?
請幫幫我嗎?
的main()可以通過使用退出(代碼)功能
#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";
}
然後按呼叫程序,您可以檢查返回的退出代碼,例如(來電者是一個批處理文件)返回「退出代碼」到OS :
@echo off
call yourapp.exe
echo Exit Code = %ERRORLEVEL%
這是正確的。程序的結果代碼是main
函數的返回值。
您可以簡單地使用返回。成功的常見返回值是0,其他任何被認爲是某種錯誤。
int main()
{
...
return 0;
}
來獲取值到另一個程序,你可以使用一個系統調用, http://en.wikipedia.org/wiki/System_(C_standard_library)
或使用bash腳本,如:
編輯,感謝埃文特蘭:
myProgram;
V=$?;
program1 $V
這是可以的,全部感謝 – Ankata 2011-03-12 08:07:56
這不是你如何獲得將分配輸出的程序的返回值(如'stdout'到'$ v')。要獲得返回值,你應該這樣做:'myProgram; V = $ ?; program1 $ V' – 2011-03-12 18:59:05
哎呀,謝謝埃文。生病更新原始帖子。 – 2011-03-12 19:01:58
請注意,作爲退出狀態處理的事件返回計數是危險的,因爲[您可以返回的最大值爲255](http://stackoverflow.net米/問題/ 808541 /任何效益合使用-WEXITSTATUS-宏觀在-C-過除法逐256上出射狀態)。 – sarnold 2011-03-12 08:10:12