C 프로그램이 실행될 때 명령줄에서 일부 값을 C 프로그램으로 전달할 수 있습니다. 이러한 값을 명령줄 인수라고 하며 특히 코드 내에서 해당 값을 하드 코딩하는 대신 외부에서 프로그램을 제어하려는 경우 프로그램에 중요합니다.
명령줄 인수는 main() 함수 인수를 사용하여 처리되며, 여기서 argc는 전달된 인수의 수를 나타내고 argv[]는 프로그램에 전달된 각 인수를 가리키는 포인터 배열입니다. 다음은 명령줄에서 제공된 인수가 있는지 확인하고 그에 따라 조치를 취하는 간단한 예입니다 -
예시
#include <stdio.h> int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } }
출력
$./a.out testing The argument supplied is testing
출력
$./a.out testing1 testing2 Too many arguments supplied.
출력
$./a.out One argument expected
argv[0]은 프로그램 자체의 이름을 보유하고 argv[1]은 제공된 첫 번째 명령줄 인수에 대한 포인터이며 *argv[n]은 마지막 인수입니다. 인수가 제공되지 않으면 argc가 1이 되고 하나의 인수를 전달하면 argc가 2로 설정됩니다.
공백으로 구분된 모든 명령줄 인수를 전달하지만, 인수 자체에 공백이 있으면 큰따옴표 "" 또는 작은따옴표 '' 안에 넣어 이러한 인수를 전달할 수 있습니다. 프로그램 이름을 인쇄하고 내부에 큰따옴표를 넣어 명령줄 인수도 전달하는 위의 예를 다시 한 번 작성해 보겠습니다. -
예시
#include <stdio.h> int main( int argc, char *argv[] ) { printf("Program name %s\n", argv[0]); if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } }
출력
$./a.out "testing1 testing2" Progranm name ./a.out The argument supplied is testing1 testing2