본문 바로가기

C언어/C_지식_정리

[C 언어] CMD(명령 프롬프트) 에서 프로그램 실행시 실행 옵션 받기

리눅스의 대부분 명렁어들이 실행 옵션을 받는다.

대표적으로 ls명령어, cat명령어, vi명령어 등등이 있는데

사실은 C언어에서 실행옵션 받는 프로그램 형식인데 명령어 처럼 쓰이는 것이다.

sum.c
#include <stdio.h>
#include <stdlib.h> // atoi 함수를 쓰기 위한 헤더파일 추가

int main(int argc, char *argv[]) // cmd에 인자값 받기
{
   int res = 0;
   for (int i = 1; i < argc; i++) // argc 갯수만큼 반복
   {
      res += atoi(argv[i]); //인자값을 res에 누적해서 더함
   }
   printf("%d", res);// 결과값 출력
   return 0;
}

int main(int argc, char *argv[]) 에서 argc는 프로젝트명을 포함한 실행 옵션의 개수, argv는 실행 옵션 문자이다.


위의 코드를 테스트 해보려면,

비주얼 스튜디오의 폴더에서 코드를 짠 프로젝트 폴더에 Debug 폴더에서 프로젝트명.exe 파일을 가져와서

명령 프롬프트에서 그 경로로 이동한 다음

프로젝트명 실행옵션1 실행옵션2... 실행옵션x

라고 입력하고 엔터를 누르면 결과값이 나온다.

위의 사진을 보면 sum 10 20 이라고 입력 했는데, 여기서 argc는 3개가 되는것이다.

ex) sum(1개) 10(2개) 20(3개)

argv는 위의 사진처럼 [0] = sum, [1] = 10, [2] = 20 이 된다. 

그리고 cmd에서 실행 옵션을 받으면 문자열로 취급하기 때문에,

숫자 연산을 하려면 atoi 함수를 이용해서 숫자로 바꾸어야 한다.