int main(int argc, char *argv[])
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 |
댓글