2011-03-12 117 views
3

我有一個問題,我不知道我的程序是否正確。 請讓我知道您的想法?命令行程序的返回值

問題:在命令行中創建一個進程文件程序,程序返回的是已處理文件的編號。

我的程序:在main()函數中,我返回處理文件的數量。

它是正確的嗎?如果正確,我怎樣才能從另一個程序中獲得這個值?

請幫幫我嗎?

+0

請注意,作爲退出狀態處理的事件返回計數是危險的,因爲[您可以返回的最大值爲255](http://stackoverflow.net米/問題/ 808541 /任何效益合使用-WEXITSTATUS-宏觀在-C-過除法逐256上出射狀態)。 – sarnold 2011-03-12 08:10:12

回答

3

的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% 
0

這是正確的。程序的結果代碼是main函數的返回值。

5

您可以簡單地使用返回。成功的常見返回值是0,其他任何被認爲是某種錯誤。

int main() 
{ 
... 

return 0; 
} 

來獲取值到另一個程序,你可以使用一個系統調用, http://en.wikipedia.org/wiki/System_(C_standard_library

或使用bash腳本,如:

編輯,感謝埃文特蘭:

myProgram; 
    V=$?; 
    program1 $V 
+0

這是可以的,全部感謝 – Ankata 2011-03-12 08:07:56

+0

這不是你如何獲得將分配輸出的程序的返回值(如'stdout'到'$ v')。要獲得返回值,你應該這樣做:'myProgram; V = $ ?; program1 $ V' – 2011-03-12 18:59:05

+0

哎呀,謝謝埃文。生病更新原始帖子。 – 2011-03-12 19:01:58