티스토리 뷰
창병모, 리눅스 프로그래밍 원리와 실제(생능출판, 2022)
3.1 C 언어 요약
C 프로그램 구성
- 여러 개의 .c 파일로 구성
- 함수 외부에서 전역 변수(global variable)를 선언 가능, 전역 변수는 프로그램 내에 어디서나 사용 가능
이차원 배열
자료형 배열명[N][M] : 크기가 N X M인 이차원 배열 선언
포인터와 포인터 변수
포인터 : 메모리 공간의 주소
포인터 상수 : 메모리 주소 값
포인터 변수 : 주소 값(포인터)을 저장할 수 있는 변수로 다른 메모리 공간을 가리킴
- *p는 포인터 p가 가리키는 곳을 따라가 데이터가 저장도니 공간 참조 <- 주소참조(dereferencing)
배열과 포인터
배열 이름은 실제로는 배열의 시작주소를 나타내는 상수 즉 포인터 상수임
- p[1]은 *(p+1)과 동일
문자열과 포인터
char *변수명 = "문자열";
- char 포인터 변수는 문자열을 가리킴
여러 개의 문자열 저장
문자형의 이차원 배열
char colors[3][10] = {"red", "blue", "white"};
포인터 배열
char *ptr[3] = {"red", "cian", "black"};
포인터의 포인터
- 포인터의 대상이 char 포인터인 포인터 변수 사용 가능
- char 포인터의 포인터 변수 p는 포인터 배열 ptr의 시작 주소를 대입해 포인터 배열 ptr을 가리킬 수 있음
구조체
3.2 C 컴파일러
단일 모듈 프로그램 컴파일
gcc [-옵션] 파일 : C 프로그램 컴파일
-c : 목적 파일 생성, 목적 파일은 컴파일은 되었지만 링크되지 않아 실행될 수 없는 파일
-o : 실행 파일 이름을 지정하여 만들 수 잇음
-s : 어셈블리어 프로그램 파일 생성 가능
-l : 특정 라이브러리 링크
다중 모듈 프로그램
- 단일 모듈 프로그램의 문제점은 코드의 재사용이 어렵고, 여러 사람이 참여하는 프로그램 어렵다는 것
- 위 문제점을 해결하기 위해 위 그림과 같이 여러 개의 .c 파일들로 이루어진 다중 모듈 C 프로그램을 작성할 수 있음
재사용할 수 있는 함수를 준비하기 위해서는
(1) 함수의 소스 코드를 포함하는 소스 코드 파일과
(2) 함수의 프로토타입을 포함하는 헤더 파일을 함께 작성
다중 모듈 프로그램 컴파일
gcc의 -c 옵션을 사용할 수 있음
3.3 자동 빌드 도구
make 시스템
- 많은 파일로 구성된 다중 모듈 프로그램을 빌드하는 작업은 번거로움
make : make 시스템은 메이크파일을 이용하여 실행 파일을 빌드
메이크파일
- 일반적으로 makefile이라는 이름으로 만듬
3.4 gdb 디버거
gdb 사용
- breakpoint 설정
- 한 줄씩 실행
- 변수 접근 및 수정
- 함수 탐색
- 추적 (tracing)
gdb 실행파일 : gdb 디버거는 실행파일을 이용해 디버깅 모드로 실행
gdb 기능
소스보기 : l
정지점 : b, clear, d
프로그램 수행 : r, k n, s
변수 값 프린트 : p
종료 : q\
3.5 이클립스 통합개발환경
C/C++ 개발자를 위한 리눅스용 이클립스
'❄️ Sookmyung > 💾 Linux' 카테고리의 다른 글
[Linux Programming] Chapter 7. 파일 및 레코드 잠금 (0) | 2022.04.25 |
---|---|
[Linux Programming] Chapter 6. 파일 시스템 (0) | 2022.04.25 |
[Linux Programming] Chapter 5. 파일 입출력 (0) | 2022.04.25 |
[Linux Programming] Chapter 4. C 표준 파일 입출력 (0) | 2022.04.22 |
[Linux Programming] Chapter 2. 리눅스 사용 (0) | 2022.04.21 |