4615
2006-06-12 18:16:37
5
아래 c소스는 명령행 인자 처리(command line arguement)에 관한 것입니다
보통 도스나 unix같은 프로그램은 format a: /s나 ps -ef등... 프로그램실행
시 옵션이나 기타 정보를 인자로 읽어 처리합니다. 인자들은 main()함수의
인자로 들어와 처리하게 됩니다...
argc는 argument count의 약자로 인자의 갯수를 의미하며,
argv는 argument vector의 약자로 각인자에 해당하는 문자열을 가리키는
포인터 배열입니다...
이것중..argv는 운영체제에 따라 약간식 다릅니다..
도스에서는 argv[0]은 해당 프로그램의 경로명이고,,argv[1]...argv[argc-1]까지가 프로그램에 인자가 됩니다...
아래의 예제를 보아 도스용 프로그램으로 보이며,,
첫번째 인자와 두번째 인자를 합하는 예제입니다...
소스에 약간의 오류가 있습니다...
int main(int argc,char *argv[])
{
int num1,num2,sum;
/* 인자갯수가 3개인 경우엔 정상
** 도스용임으로 실제 인수는 2개입니다
** 즉 프로그램명 3 5
** 이렇케 실행하면 "3+5 = 8" 이란 결과값이 화면에 뿌려집니다
*/
if(argc == 3)
{
num1 = atoi(argv[1]); /* atoi는 변환함수로 문자열을 정수로 변환함 */
num2 = atoi(argv[2]);
sum = num1 + num2;
printf("%d + %d = %d n",num1,num2,sum);
}
/* 인자갯수가 3개가 아니면
** "input the the arguments" 라는 메세지를 화면에 뿌린다.
** 오류처리
*/
else
{
puts("input the the arguments");
return(1); /*비정상종료*/
}
/*return(1);*/
return(0); /*정상종료 */
}