Programming Language/C

int main(int argc, char *argv[])

D4tai1 2018. 5. 13.

dir /?

= 입력 시 dir 명령에 대한 도움말이 출력.

 

= 이때 "/?" 라는 문자열이 옵션.



int main(int argc, char* argv[]) 함수를 보면

argc = 프로그램을 실행할 때 지정해 준 "명령행 옵션"의 "개수"가 저장되는 공간

argv = 프로그램을 실행할 때 지정해 준 "명령행 옵션의 문자열들"이 실제로 저장되는 배열

 

 

- abc.c - 

 

#include <stdio.h>
#include <stdlib.h>  // exit()

int main(int argc, char* argv[]) {


  // 옵션 지정하지 않았을 때 에러 출력하고 종료
  if (argc == 1) {
    fputs("옵션을 입력하지 않았습니다. \n", stderr);
    exit(1);
  }


  // 옵션 개수 출력
  printf("%d 개의 옵션을 입력하였습니다. \n", argc - 1);


  // 옵션 배열의 요소들을 하나씩 출력
  for (int i = 1; i < argc; i++) {
        printf("argv[%d] = %s \n", i, argv[i]);
  }
  return 0;
}

 

int fputs(char *str, FILE *fp);

       str : 파일에 기록할 문자열.

       fp : 대상이 되는 파일 포인터.

       fput 함수는 str이 가르키는 문자열을 fp가 가르키는 대상 파일에 저장

       이때, 문자열 끝에 존재하는 널문자(\0)는 기록되지 않음

 

$ abc.exe

옵션을 입력하지 않았습니다.

 

$ abc.exe 111 222 333

3개의 옵션을 입력하였습니다.

 

 

args[0] == abc.exe  로 구성되어 있음

옵션의 정확한 개수를 구하기 위해서는 프로그램 자신의 파일명을 빼주어야 함

'Programming Language > C' 카테고리의 다른 글

공유메모리 dump  (0) 2018.05.20
scrncmp  (0) 2018.05.19
strcpy(), strcat()  (0) 2018.05.13
call by reference  (0) 2018.03.28

댓글