2011-03-12 4 views
3

문제점이 있고 프로그램이 올 바르지 않다는 것을 모른다. 아이디어를 알려주십시오.명령 행 프로그램의 리턴 값

문제 : 명령 줄에서 프로세스 파일 프로그램을 만들고 프로그램 반환은 처리 된 파일 수입니다.

내 프로그램 : main() 함수에서 처리 된 파일 수를 반환합니다.

맞습니까? 올바른 경우 다른 프로그램에서이 값을 얻으려면 어떻게해야합니까?

도와주세요.

+0

[현재 상태에서 반환 할 수있는 최대 값은 255이므로] 종료 상태로 처리되는 항목의 개수를 반환하는 것은 위험합니다 (http://stackoverflow.co m/questions/808541/any-benefit-in-wexitstatus-macro-in-c-over-division-by-256-by-exit-status). – sarnold

답변

3

주() (코드) 호출 프로그램에서 다음 기능

#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

간단히 return을 사용할 수 있습니다. 성공에 대한 공통적 인 반환 값은 0이며 다른 것은 오류라고 간주됩니다.

int main() 
{ 
... 

return 0; 
} 

다른 프로그램에 값을 얻으려면, 당신은 시스템 호출을 사용 할 수 있습니다, http://en.wikipedia.org/wiki/System_(C_standard_library)

또는 같은 bash는 스크립트 사용 : 편집

, 감사 에반 테란 :

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

괜찮습니다. 고마워요. – Ankata

+0

출력을 지정하는 프로그램의 반환 값을 얻는 방법이 아닙니다 ('stdout'에서'$ v'로). 반환 값을 얻으려면 다음을 수행해야합니다 :'myProgram; V = $ ?; program1 $ V' –

+0

죄송합니다, Evan에게 감사드립니다. 아쉽게 원래 게시물을 업데이트하십시오. –