책이름: 초보자를 위한 Linux & Unix C 프로그래밍
저  자: 김종훈, 김종진, 김동균
출판사: 한빛미디어
장  수: 834쪽

초보자를 위한 Linux & Unix C 프로그래밍은 기본적인 C 프로그래밍에 대한 강의 내용과 C함수에 설명에 예제를 충실이 담은 책입니다. 번역서가 아니기 때문에 읽기 편하고 책 이름과 같이 초보자가 보기에는 편한 책이라 생각됩니다.

  아래는 책의 목차입니다.

머리말
주요 내용 및 구성
주 독자층

Part 1 C 프로그래밍 기초

  1. 들어서기
    1. 리눅스와 C 언어
    2. 리눅스 C 프로그래밍 관련 사이트
    3. 리눅스에서 C 프로그램 실습하기
  2. C 프로그램 구조 이해하기
    1. 기본 프로그램
    2. 상수를 이용한 프로그램
    3. 변수를 이용한 프로그램
    4. 함수를 이용한 프로그램
  3. 연산자와 제어문
    1. 연산자
    2. 제어문
  4. 배열과 포인터
    1. 배열이란
    2. 배열의 종류
    3. 포인터
  5. 함수
    1. 함수란
    2. 한수간 데이터 전달 기법
    3. 기억 클래스
    4. 재귀호출
  6. 구조제와 공용체
    1. 구조체
    2. 공용체
  7. 전처리기
    1. 전처리기란
    2. 매크로 정의하기
    3. 파일 삽입하기
    4. 조건부 컴파일

Part 2 리눅스 C 라이브러리 함수

  1. 문자와 문자열 처리 함수
    1. 문자 판별 함수
    2. 문자 변환 함수
    3. 문자열 연결 함수
    4. 문자열 비교 함수
    5. 문자열 복사 함수
    6. 문자열 길이 계산 함수
    7. 문자열 검색 함수
    8. 문자열을 단어로 자르는 함수
  2. 데이터 변환 함수
    1. 기본 변환 함수
    2. 고급 변환 함수
  3. 메모리 관리 함수
    1. 동적 메모리 할당과 해제 함수
    2. 메모리 크기 변경 함수
    3. 메모리 초기화 함수
    4. 메모리 영역 복사 함수
    5. 메모리 영역 검색과 비교 함수
  4. 입출력 함수
    1. 기본 입출력 함수
    2. 파일 입출력 함수
    3. 기타 입출력 함수
  5. 수학 함수
    1. 절대값 함수
    2. 나머지 함수
    3. 난수 함수
    4. 거듭제곱과 제곱근 함수
    5. 기타 수학 함수
  6. 탐색과 정렬 함수
    1. 선형 탐색 함수
    2. 이진 탐색 함수
    3. 이진 트리 관리
    4. 해시 테이블 관리
    5. 퀵 정렬 함수
  7. 날짜와 시간 함수
    1. 시간 표시 함수
    2. 형식 변환 함수
    3. 기타 시간 관련 함수

Part 3 리눅스 C 프로그래밍 관련 툴

  1. vi로 편집하기
    1. vi 실행하기
    2. vi 세가지 모드
    3. 커서 이동하기
    4. 편집하기
    5. 문자열 검색하기
    6. 문자열 치환하기
    7. 파일 다루기와 종료하기
  2. gcc로 컴파일하기
    1. gcc 동작 과정
    2. gcc 실행하기
    3. gcc 옵션
  3. make로 컴파일 자동화하기
    1. make란
    2. make 파일
    3. 매크로
    4. 규칙
    5. make 옵션
  4. gdb로 디버깅하기
    1. gdb 사용하기
    2. gdb 명령어
    3. 정지점 이용하기
    4. 단계별로 실행하기

Part 4 리눅스가 동작하는 프로그래밍

  1. 오류 처리하기
    1. 라이브러리 함수의 오류 번호 얻기
    2. 오류 메시지 출력하고 종료하기
    3. 무조건 종료하기
    4. 오류 번호로 오류 원인 얻기
    5. 오류 메시지 출력하기
  2. 리눅스 프로그램 환경
    1. 명령라인 인수 사용하기
    2. 라인 번호가 출력되는 프로그램 구현하기
    3. 환경변수
    4. 사용자와 그룹 정보 알아내기
  3. 시스템에서 제공하는 파일 입출력
    1. 파일마다 번호 부여
    2. 파일 열기와 닫기
    3. 파일 읽기와 쓰기
    4. 파일 생성하기
    5. 파일에 임의로 접근하기
    6. 파일 크기 바꾸기
    7. 여러 개이 파일 식별자 각기
    8. 파일 제어하기
  4. 파일과 디렉토리 다루기
    1. 파일 정보 얻어오기
    2. 디렉토리 관리하기
    3. 다른 이름 부여하기
    4. 삭제하기와 이름 변경하기
    5. 정보 변경하기
    6. 디스크에 쓰기
  5. 프로세스 제어하기
    1. 프로세스 생성하기
    2. 프로세스 종료하기
    3. 프로세스 종료를 기다림
    4. 프로세스 대체하기
    5. 셀 구현하기
    6. 새로운 프로세스 실행하기
  6. 시그널
    1. 시그널이란
    2. 시그널 처리하기
    3. 시그널 보내기
    4. 시그널 블록

Part 5 통신과 네트워크 프로그래밍

  1. 파일과 파이프를 이용한 통신
    1. 레코드 잠금
    2. 파이프를 이용한 통신
    3. FIFO를 이용한 통신
  2. 메시지 큐, 공유 메모리, 세마포어를 이용한 통신
    1. 메시지 큐를 이용한 통신
    2. 공유 메모리를 이용한 통신
    3. 세마포어를 이용한 통신
  3. 기본 네트워크 프로그래밍
    1. 네트워크 프로그래밍이란
    2. TCP를 이용해 신뢰성 있게 통신하기
    3. UDP를 이용해 빠르게 통신하기
  4. 고급 네트워크 프로그래밍
    1. 다수의 클라이언트와의 네트워킹
    2. 일대일 채팅 프로그램

부록 A 리눅스 명령어

찾아보기