도전2022
UNIX 고급 프로그래밍 제2판 본문
도서
UNIX 고급 프로그래밍제2판리처드 스티븐스,스티븐 레이고 공저/류광 역 | 대웅출판사 | 원서 : Advanced Programming in the UNIX Environment 2/e |
리차드 스티븐스 (W. Richard Stevens)의 Advanced Programming in the UNIX® Environment을 한국어로 번역한 책이다. 10년이 넘는 시간동안, 진지한 C 프로그래머들이 선호한 책으로 알려져 있으며 UNIX와 Linux 커널을 구동하는 프로그래밍 인터페이스에 대한 실용적이고도 상세한 지식을 담은 책이기도 하다. 10,000여 줄이 넘는 예제들을 통해서 학습할 수 있도록 구성하였으며 예제들은 모두 ANSI C로 작성되었고 인터넷에서 다운받을 수 있다. 책에는 400개가 넘는 시스템 호출들 및 함수들의 용법과 인수, 반환값을 보여주는 간결하고 완결적인 예제들이 수록되어 있다. . 스레드와 다중 스레드 프로그래밍, 소켓 인터페이스를 이용한 프로세스 간 통신(IPC)에 대한 장들이 개정판에서 추가되었다.
역자의 글
추천사
서문
제1판 서문
일러두기
제1장. UNIX 시스템의 개요
1.1 소개
1.2 UNIX 아키텍처
1.3 로그인
1.4 파일과 디렉터리
1.5 입력과 출력
1.6 프로그램과 프로세스
1.7 오류 처리
1.8 사용자 식별
1.9 신호
1.10 시간 값
1.11 시스템 호출과 라이브러리 함수
1.12 요약
제2장. UNIX 표준화와 구현들
2.1 소개
2.2 UNIX 표준화
2.2.1 ISO C
2.2.2 IEEE POSIX
2.2.3 단일 UNIX 규격
2.2.4 FIPS
2.3 UNIX System 구현들
2.3.1 UNIX System V Release 4
2.3.2 4.4BSD
2.3.3 FreeBSD
2.3.4 Linux
2.3.5 Mac OS X
2.3.6 Solaris
2.3.7 그 밖의 UNIX 시스템들
2.4 표준과 구현의 관계
2.5 한계들
2.5.1 ISO C가 정의하는 한계들
2.5.2 POSIX가 정의하는 한계들
2.5.3 XSI가 정의하는 한계들
2.5.4 sysconf, pathconf, fpathconf 함수
2.5.5 미결정 실행시점 한계
2.6 옵션들
2.7 기능 판정 매크로
2.8 기본 시스템 자료 형식
2.9 표준들의 충돌
2.10 요약
제3장. 파일 I/O
3.1 소개
3.2 파일 서술자
3.3 open 함수
3.4 creat 함수
3.5 close 함수
3.6 lseek 함수
3.7 read 함수
3.8 write 함수
3.9 I/O 효율성
3.10 파일 공유
3.11 원자적 연산들
3.12 dup 함수와 dup2 함수
3.13 sync 함수, fsync 함수, fdatasync 함수
3.14 fcntl 함수
3.15 ioctl 함수
3.16 /dev/fd
3.17 요약
제4장. 파일과 디렉터리
4.1 소개
4.2 stat, fstat, lstat 함수
4.3 파일의 종류
4.4 SUID와 SGID
4.5 파일 접근 권한
4.6 새 파일과 디렉터리의 소유권
4.7 access 함수
4.8 umask 함수
4.9 chmod 함수와 fchmod 함수
4.10 끈적이 비트
4.11 chown, fchown, lchown 함수
4.12 파일 크기
4.13 파일 절단
4.14 파일 시스템
4.15 link, unlink, remove, rename 함수
4.16 기호 링크
4.17 symlink 함수와 readlink 함수
4.18 파일 시간들
4.19 utime 함수
4.20 mkdir 함수와 rmdir 함수
4.21 디렉터리 읽기
4.22 chdir, fchdir, getcwd 함수
4.23 장치 특수 파일
4.24 파일 접근 권한 비트 요약
4.25 요약
제5장. 표준 I/O 라이브러리
5.1 소개
5.2 스트림과 FILE 객체
5.3 표준 I/O 스트림들 - 표준 입력, 표준 출력, 표준 오류
5.4 버퍼링
5.5 스트림 열기
5.6 스트림 읽고 쓰기
5.7 줄 단위 I/O
5.8 표준 I/O의 효율성
5.9 이진 I/O
5.10 스트림 위치 조회 및 설정
5.11 서식화된 I/O
5.12 구현 세부사항
5.13 임시 파일
5.14 표준 I/O 라이브러리의 대안들
5.15 요약
제6장. 시스템 자료 파일과 시스템 정보
6.1 소개
6.2 패스워드 파일
6.3 그림자 패스워드
6.4 그룹 파일
6.5 추가 그룹 ID
6.6 구현상의 차이점
6.7 기타 자료 파일들
6.8 로그인 계정 관리
6.9 시스템 식별
6.10 시간 및 날짜 함수들
6.11 요약
제7장. 프로세스 환경
7.1 소개
7.2 main 함수
7.3 프로세스 종료
7.4 명령줄 인수들
7.5 환경 목록
7.6 C 프로그램의 메모리 구성
7.7 공유 라이브러리
7.8 메모리 할당
7.9 환경 변수
7.10 setjmp 함수와 longjmp 함수
7.11 getrlimit 함수와 setrlimit 함수
7.12 요약
제8장. 프로세스 제어
8.1 소개
8.2 프로세스 식별자
8.3 fork 함수
8.4 vfork 함수
8.5 exit 함수들
8.6 wait 함수와 waitpid 함수
8.7 waitid 함수
8.8 wait3 함수와 wait4 함수
8.9 경쟁 조건
8.10 exec류 함수들
8.11 사용자 ID들과 그룹 ID들의 변경
8.12 해석기 파일
8.13 system 함수
8.14 프로세스 사용 통계
8.15 사용자 식별
8.16 프로세스 시간
8.17 요약
제9장. 프로세스 관계
9.1 소개
9.2 터미널 로그인
9.3 네트워크 로그인
9.4 프로세스 그룹
9.5 세션
9.6 제어 터미널
9.7 tcgetpgrp, tcsetpgrp, tcgetsid 함수
9.8 작업 제어
9.9 셸의 프로그램 실행
9.10 고아 프로세스 그룹
9.11 FreeBSD 구현
9.12 요약
제10장. 신호
10.1 소개
10.2 신호의 개념
10.3 signal 함수
10.4 신뢰성 없는 신호
10.5 가로채인 시스템 호출
10.6 재진입 함수
10.7 SIGCLD의 의미론
10.8 신뢰성 있는 신호에 관련된 용어와 의미론
10.9 kill 함수와 raise 함수
10.10 alarm 함수와 pause 함수
10.11 신호 집합
10.12 sigprocmask 함수
10.13 sigpending 함수
10.14 sigaction 함수
10.15 sigsetjmp 함수와 siglongjmp 함수
10.16 sigsuspend 함수
10.17 abort 함수
10.18 system 함수
10.19 sleep 함수
10.20 작업 제어용 신호들
10.21 추가 기능들
10.22 요약
제11장. 스레드
11.1 소개
11.2 스레드의 개념
11.3 스레드 식별
11.4 스레드 생성
11.5 스레드 종료
11.6 스레드 동기화
11.7 요약
제12장. 스레드 제어
12.1 소개
12.2 스레드에 대한 한계들
12.3 스레드 특성
12.4 스레드 동기화 객체의 특성들
12.5 재진입성
12.6 스레드 고유 자료
12.7 스레드 취소 관련 특성들
12.8 스레드와 신호
12.9 스레드와 fork
12.10 스레드와 I/O
12.11 요약
제13장. 데몬 프로세스
13.1 소개
13.2 데몬의 특징
13.3 데몬 코딩 규칙
13.4 오류 기록
13.5 단일 인스턴스 데몬
13.6 데몬의 관례
13.7 클라이언트-서버 모형
13.8 요약
제14장. 고급 I/O
14.1 소개
14.2 비차단 I/O
14.3 레코드 잠금
14.4 STREAMS
14.5 I/O 다중화
14.5.1 select 함수와 pselect 함수
14.5.2 poll 함수
14.6 비동기 I/O
14.6.1 System V의 비동기 I/O
14.6.2 BSD 비동기 I/O
14.7 readv 함수와 writev 함수
14.8 readn 함수와 writen 함수
14.9 메모리 맵드 I/O
14.10요약
제15장. 프로세스 간 통신
15.1 소개
15.2 파이프
15.3 popen 함수와 pclose 함수
15.4 코프로세스
15.5 FIFO
15.6 XSI IPC
15.6.1 식별자와 키
15.6.2 접근 권한 구조체
15.6.3 설정 한계들
15.6.4 XSI IPC의 장단점
15.7 메시지 대기열
15.8 세마포
15.9 공유 메모리
15.10 클라이언트-서버 속성들
15.11 요약
제16장. 네트워크 IPC: 소켓
16.1 소개
16.2 소켓 서술자
16.3 주소 지정
16.3.1 바이트 순서
16.3.2 주소 형식
16.3.3 주소 조회
16.3.4 주소를 소켓에 연관시키기
16.4 연결 수립
16.5 자료 전송
16.6 소켓 옵션
16.7 대역 밖 자료
16.8 비차단 I/O와 비동기 I/O
16.9 요약
제17장. 고급 IPC
17.1 소개
17.2 STREAMS 기반 파이프
17.2.1 STREAMS 파이프에 이름 붙이기
17.2.2 고유한 연결
17.3. UNIX 도메인 소켓
17.3.1 UNIX 도메인 소켓에 이름 붙이기
17.3.2 고유한 연결
17.4. 파일 서술자 전달
17.4.1 STREAMS 파이프를 이용해서 파일 서술자 넘겨주기
17.4.2 UNIX 도메인 소켓을 이용해서 파일 서술자 넘겨주기
17.5 열기 서버 버전 1
17.6 열기 서버 버전 2
17.7 요약
제18장. 터미널 I/O
18.1 소개
18.2 개요
18.3 특수 입력 문자
18.4 터미널 특성 조회, 설정
18.5 터미널 옵션 플래그들
18.6 stty 명령
18.7 보드율 함수들
18.8 회선 제어 함수들
18.9 터미널 식별
18.10 표준 모드
18.11 비표준 모드
18.12 터미널 창 크기
18.13 termcap, terminfo, curses
18.14 요약
제19장. 유사 터미널
19.1 소개
19.2 개요
19.3 유사 터미널 장치 열기
19.3.1 STREAMS 기반 유사 터미널
19.3.2 BSD 기반 유사 터미널
19.3.3 Linux 기반 유사 터미널
19.4 pty_fork 함수
19.5 pty 프로그램
19.6 pty 프로그램의 활용
19.7 고급 기능들
19.8 요약
제20장. 데이터베이스 라이브러리의 설계와 구현
20.1 소개
20.2 역사
20.3 apue_db 라이브러리
20.4 구현의 개요
20.5 집중인가 탈집중인가
20.6 동시성
20.7 라이브러리 구축
20.8 소스 코드
20.9 성능
20.10 요약
제21장. 네트워크 프린터와의 통신
21.1 소개
21.2 인터넷 인쇄 프로토콜, IPP
21.3 하이퍼텍스트 전송 프로토콜, HTTP
21.4 프린터 스풀링
21.5 소스 코드
21.6 요약
■ 부록 A 함수 원형들
■ 부록 B 기타 소스 코드 963B.1. apue.h 헤더 파일 963B.2 표준 오류 루틴들
■ 부록 C 선별된 연습문제 해답
■ 참고문헌
■ 찾아보기
'책' 카테고리의 다른 글
경영과학 학습 (0) | 2010.09.14 |
---|---|
소중한 것을 먼저하자. (0) | 2010.05.11 |
Application Hacking (0) | 2010.03.10 |
pro Linux Embedded system (0) | 2010.02.22 |
유닉스 리눅스 프로그래밍 필수 유틸리티 (0) | 2010.02.18 |