기본 패턴
c
int main(int argc, char *argv[]) {
if (argc < 2) {
return 1;
}
printf("%s\n", argv[1]);
return 0;
}설명
argc는 인자 개수이고,argv는 각 인자를 가리키는 문자열 포인터 배열입니다.- 보통
argv[0]은 프로그램 실행 이름이고, 실제 사용자 입력은argv[1]부터 시작합니다. - 명령행 인자는 모두 문자열이므로, 숫자가 필요하면
strtol같은 변환 함수를 사용해야 합니다. - CLI 프로그램은 인자 개수가 맞는지 먼저 검사하고, 잘못된 입력에 대한 안내를 함께 주는 편이 좋습니다.
짧은 예제
c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("usage: app a b\n");
return 1;
}
long a = strtol(argv[1], NULL, 10);
long b = strtol(argv[2], NULL, 10);
printf("%ld\n", a + b);
return 0;
}빠른 정리
| 항목 | 설명 |
|---|---|
argc | 전달된 인자 개수 |
argv | 문자열 포인터 배열 |
argv[0] | 보통 프로그램 이름 또는 실행 경로 |
argv[1] 이후 | 실제 사용자 인자 |
| 문자열 변환 | 숫자가 필요하면 strtol, strtod 같은 함수 사용 |
주의할 점
인자 개수 확인 없이 argv[1]이나 argv[2]에 바로 접근하면 범위를 벗어날 수 있습니다. CLI 프로그램은 항상 argc 검사부터 시작하는 편이 안전합니다.