커맨드라인 인자
- argc: 인자의 개수 (최소 1)
- argv: 각 인자의 값
- 바이너리 파일 이름은 첫번째 인자에 해당됨.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i;
printf("argc=%d\n", argc);
for (i = 0; i < argc; i++) {
printf("argv[%d]=%s\n", i, argv[i]);
}
exit(0);
}
- 실행 결과
- 쉘 특성 상 문자열을 큰 따옴표(",")로 묶어서 인자로 넘기면 공백도 포함됨.
- 쉘 특성 상 와일드 카드 사용 시 현재 경로 기준으로 매칭되는 파일 이름을 인자로 넘김.
$ ./args
argc=1
argv[0] = ./args
$ ./args x
argc=2
argv[0]=./args
argv[1]=x
$ ./args x y
argc=3
argv[0]=./args
argv[1]=x
argv[2]=y
$ ./args x y z
argc=4
argv[0]=./args
argv[1]=x
argv[2]=y
argv[3]=z
$ ./args "x y z"
argc=2
argv[0]=./args
argv[1]=x y z
$ ./args *.c
argc=3
argv[0]=./args
argv[1]=hello.c
argv[2]=args.c
$ ./args "*.c"
argc=2
argv[0]=./args
argv[1]=*.c
GCC 컴파일러
gcc -g -W -Wall -o [실행파일] [C파일]
- -o 는 목적 파일 이름 주는 옵션
- -Wall 은 소스 수준의 정보를 디버깅 시 이용하기 위한 옵션.
- 위 두 개는 항상 옵션으로 줄 것
- 참고
gcc와 make 강좌: gcc 강좌
디렉토리명은 -I 라는 문자 바로 다음에 붙여서 씁니다. 즉 -I <디렉토리>라는 식이 아니라 -I<디렉토리> 입니다. 또한 유닉스에 있어 표준 헤더 화일 디렉토리는 /usr/include 라는 사실을 기억하시기
doc.kldp.org
man 명령어
리눅스 라이브러리 함수의 정보가 필요한 경우 매우 유용한 명령어
man strlen
'Programming Language > C in Linux System' 카테고리의 다른 글
리눅스 커널 기초: 파일 시스템 및 프로세스 (0) | 2020.11.03 |
---|