일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 건대입구맛집
- 남양주맛집
- BeautifulSoup
- 코딩독학
- 장고
- 포인터
- 강원도속초맛집
- 노마드코더
- 성수동카페
- 자바
- richtext
- 아스키코드
- 정렬알고리즘
- DOM
- JavaScript
- 추상클래스
- c언어문자열
- removetooltip
- 상속
- Python
- pipenv
- Django
- 속초여행
- 가상환경
- 부스트코스
- 알고리즘
- FLUTTER
- python3
- popupmenubutton
- 컴퓨터과학
- Today
- Total
YUYANE
C / 명령행 인자 ( command line argument) 본문
학습 강의
www.boostcourse.org/cs112/lecture/119018/
명령행 인자(Command line arguments)
C언어 프로그램을 실행할 때 'clang' 혹은 'make' 라는 명령을 입력함으로써 프로그램을 컴파일한다.
그런데 명령을 할 때, 추가 인자(argument)를 넣을 수 있는데, 이를 명령행 인자라고 부른다.
#include stdio.h>
#include <cs50.h>
int main(void)
{
}
위와 같이 main 함수에 인자를 넣지 않을 수도 있지만,
#include <stdio.h>
int main(int argc, char* argv[])
{
if(argc==2)
{
printf("hello, %s\n",argv[1]);
}
else
{
printf("hello, world!\n");
}
}
명령행 인자를 넣어줄 수도 있다.
첫 번째 인자인 'int arc'는 main 함수가 받게 될 명령행 입력의 개수, 두 번째 인자인 argv[]는 그 입력이 포함되어 있는 배열이다. char형의 배열로 주어진 이유는, 명령행을 문자열로 입력받기 때문이다.
여기서 argv[0]은 기본적으로 프로그램 실행 파일이다. 다시 말해, 첫 번째 명령행 인자는 프로그램 실행파일이다. 따라서 하나의 입력이 주어진다면 그 입력은 argv[1]에 저장될 것이고, 명령행 인자는 2개가 될 것이다.
아래 실행 과정을 한 번 살펴보자.
make hello
- 'hello'라는 이름의 프로그램을 컴파일 해준다.
./hello
- 명령 인자 없이 'hello' 프로그램을 실행한다. argc == 1(hello.c)이기 때문에 "hello, world"가 출력된다.
./hello cats
- 명령 인자가 입력 되었다. 인자의 갯수는 총 2개(hello.c, cats)이기 때문에 "hello, cats"가 출력된다.
이해를 돕기 위해 명령행 인자 2개를 받는 코드를 작성해보았다.
#include <stdio.h>
int main(int argc, char* argv[])
{
if(argc==2)
{
printf("hello, %s\n",argv[1]);
}
if(argc==3)
{
printf("hello, %s, %s\n",argv[1], argv[2]);
}
else
{
printf("hello, world!\n");
}
}
'Programming Languages > C' 카테고리의 다른 글
C / 포인터와 문자열 (0) | 2021.02.16 |
---|---|
C / 16진법과 메모리 주소(&연산자, 포인터) (0) | 2021.02.15 |
C / 컴파일 과정에 대해서 (0) | 2021.01.25 |
C / 포인터 사용하기 (코드리뷰) (0) | 2021.01.22 |
C / 전역변수 사용이 나쁜 이유 (0) | 2021.01.22 |