C입출력과 파일

명령행 인자

`main(int argc, char *argv[])` 형태로 전달되는 명령행 인자의 구조와 기본 처리 흐름을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

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 검사부터 시작하는 편이 안전합니다.