Command line arguments allow programs to receive input directly from the command prompt. For example:
gcc -o hello hello.c
In this example, the command line arguments passed to gcc
are -o
, hello
, and hello.c
. These arguments tell gcc
what specific tasks to perform, like compiling hello.c
into an executable named hello
.
Main Function Signature:
To handle command line arguments in your own programs, the main
function should be written as follows:
int main(int argc, char **argv) {
// Your code here
}
argc
: Argument count (how many arguments were passed).argv
: Argument vector (an array of strings representing the arguments).The first element, argv[0]
, holds the name of the program as invoked (e.g., ./a.out
).
Example Code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
printf("Hello, my name is %s\\n", argv[0]);
return EXIT_SUCCESS;
}
This program prints out the name used to invoke it and then exits.
Accessing Command Line Arguments:
argv[1]
to argv[argc-1]
hold the actual arguments passed by the user.Converting Arguments:
atoi
or strtol
).Frame Layout Example: When running the command:
./myProgram input.txt -n 42
argv[0]
is ./myProgram
argv[1]
is input.txt
argv[2]
is n
argv[3]
is 42
Common Access Patterns:
argv[1]
as an input file).Error Handling:
Programs should check argc
to ensure the correct number of arguments are supplied. Accessing elements of argv
without sufficient arguments can lead to segmentation faults.
명령줄 인수는 프로그램이 커맨드 프롬프트에서 직접 입력을 받을 수 있게 해줍니다. 예를 들어:
gcc -o hello hello.c
이 예시에서 gcc
에 전달된 명령줄 인수는 -o
, hello
, hello.c
입니다. 이 인수들은 gcc
에게 무엇을 해야 하는지(예: hello.c
을 hello
라는 실행 파일로 컴파일) 알려줍니다.
메인 함수 서명:
명령줄 인수를 처리하려면 main
함수를 다음과 같이 작성해야 합니다:
int main(int argc, char **argv) {
// 코드 작성
}
argc
: 인수의 개수.argv
: 인수 벡터 (문자열 배열로 인수를 나타냄).첫 번째 요소인 argv[0]
은 프로그램의 이름을 포함합니다 (예: ./a.out
).
예제 코드:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
printf("Hello, my name is %s\\n", argv[0]);
return EXIT_SUCCESS;
}
이 프로그램은 실행 시 사용된 이름을 출력한 후 종료합니다.
명령줄 인수 접근:
argv[1]
에서 argv[argc-1]
까지는 사용자가 전달한 실제 인수를 담고 있습니다.인수 변환:
atoi
또는 strtol
사용).