카테고리 없음

TIL 2025 03 21 CS50 / 명령행 인자

200tmdghks 2025. 3. 21. 23:36

목차

1. 명령행인자

 

 


1. 명령행 인자

make나 clang과 같은 프로그램을 실행할 때 컴파일하고자 하는 코드 외에도, 컴파일 후 저장하고자 하는 파일명과 같이 추가적인 정보를 함께 제공 가능한 정보들.

 

핵심 개념

  • 명령행 인자 (Command-line Arguments)
  • argv (Argument Vector)
  • argc (Argument Count)

 



1-1. 코드 분석 및 실행 예시

C 언어에서 main 함수는 기본적으로 int main(void) 형태로 작성했지만, 명령행 인자를 활용하기 위해 다음과 같이 변경 가능.

#include <cs50.h>
#include <stdio.h>

int main(int argc, string argv[])
{
    if (argc == 2)
    {
        printf("hello, %s\n", argv[1]);
    }
    else
    {
        printf("hello, world\n");
    }
}

 

 

코드 설명

  1. argc (Argument Count): 프로그램 실행 시 전달된 명령행 인자의 개수를 저장하는 변수.
    • 프로그램 실행 시 기본적으로 프로그램 이름 자체가 포함되므로 최소값은 1.
    • 명령행에서 추가적인 값을 입력하면 그만큼 증가.
  2. argv[ ] (Argument Vector): 명령행에서 입력된 각 인자를 문자열 배열 형태로 저장.
    • argv[0] : 프로그램 이름.
    • argv[1] : 첫 번째 입력값 (존재할 경우).
  3. 조건문 활용: argc == 2일 경우, 사용자 입력값을 출력.
    • ./argchello, world (입력값 없음)
    • ./argc Davidhello, David (입력값 "David" 활용)

 

실행 예시

$ ./argc
hello, world

$ ./argc Alice
hello, Alice

 


정리

  • argc를 활용, 명령행 인자의 개수를 확인 가능.
  • argv[ ]를 통해 사용자가 입력한 값을 받아 활용 가능.
  • 프로그램 실행 시 ./프로그램이름 인자 형태로 입력하여 동적인 데이터 처리가 가능.