책 소개대학 및 전문대학의 리눅스 프로그래밍, 운영 체제 실습, C 언어 프로그래밍의 고급 과정이나 시스템 프로그래밍 과정에서 다룰 수 있도록 집필하였다. 전체 13개의 장과 부록으로 구성하였으며, 1장에서는 리눅스를 이용하여 C 프로그램을 개발할 때 필요한 C 언어 라이브러리에 대하여 전반적인 소개를 하였으며, 2장에서는 파일시스템의 구조와 이를 이용한 입출력 함수를 설명하였다. 3장에서는 화일의 입출력과 디렉토리를 다루기 위한 함수들을 소개하고, 특히 4장에서는 병행 프로그래밍에서 발생되는 화일과 레코드의 공유를 위한 로킹(locking)에 대해서 설명하였다. 5장에서는 리눅스의 단말기 입출력을 위한 소프트웨어 인터페이스에 관하여 상세하게 다루었다. 또한 6장에서는 프로세서의 생성과 수행 환경, 그리고 기본적인 프로세스 간의 통신 도구를 볼 수 있는 신호(signal)와 파이프(pipe)를 7장과 8장에서 다루었고, 고급 개념의 프로세스 간의 통신 도구인 메시지 큐(message queue)와 세마포어 및 공유 메모리를 9장과 10장 및 11장에서 각각 다루었다. 특히, 12장에서는 리눅스에서 네트워크 프로그래밍을 가능하게 하는 소켓(socket) 함수와 예제 프로그램들을 자세히 다루었으며, 마지막으로 13장에서는 리눅스에서 효율적인 병행 프로그래밍을 지원하는 도구인 스레드 프로그래밍에 대하여 많은 예제와 함께 다루었다.
|
목차1장 표준 C 라이브러리 함수 1.1 표준 입출력 함수 1.2 표준 라이브러리 함수 1.3 문자열 처리 함수 1.4 바이트 스트림 처리 함수 1.5 메모리 관리 함수 1.6 시간 관련 함수 1.7 명령 라인 인수들과 스위치 1.8 다른 함수로의 분기 1.9 패스워드 관련 함수 1.10 그룹 관련 함수 1.11 암호화 관련 함수
2장 입출력 시스템 호출 2.1 화일 시스템의 내부 구조 2.2 화일의 내부 표현 2.3 화일 열기 : open 2.4 화일 닫기 : close 2.5 화일 읽기 : read 2.6 화일 쓰기 : write 2.7 화일의 임의 접근 : lseek 2.8 화일 디스크립터 복사 : dup 2.9 화일의 제어 : fcntl
3장 화일과 디렉토리 3.1 화일의 사용자와 소유권 3.2 화일의 접근 : access 3.3 화일의 크기 제한 : ulimit 3.4 화일 생성 마스크 : umask 3.5 화일의 상태 : stat, fstat 3.6 화일의 모드 변경 : chmod 3.7 화일 소유자의 변경 : chown 3.8 화일의 접근 시간 변경 : utime 3.9 디렉토리의 구조 3.10 디렉토리의 프로그래밍
4장 화일과 레코드 로킹 4.1 레코드 로킹의 개념 4.2 화일 제어 함수의 응용 : fcntl 4.3 레코드 로킹 함수 : lockf
5장 단말기 입출력 제어 5.1 소개 5.2 인터페이스(Interface) 5.3 입출력 인터페이스 5.4 단말기 입출력 5.5 장치 제어 : ioctl
6장 프로세스 생성과 수행 6.1 프로세스의 소개 6.2 프로세스의 사용자 식별자(ID) : setuid, setgid 6.3 프로세스의 크기 변경 : brk, sbrk 6.4 프로세스의 환경 변수 : getenv, putenv 6.5 프로세스의 생성 : fork 6.6 다른 프로그램의 호출 : exec 6.7 프로세스의 종료 : exit 6.8 프로세스의 종료를 기다림 : wait
7장 신호(Signal) 7.1 신호의 개념 7.2 신호의 종류 7.3 신호의 설정과 수신 : signal 7.4 신호의 송신 : kill 7.5 알람 : alarm 7.6 비지역 분기 : setjmp, longjmp 7.7 프로세스의 정지 : pause 7.8 프로세스의 수면 : sleep 7.9 신호의 관리 : sigset
8장 파이프(Pipe) 8.1 파이프의 소개 8.2 파이프 시스템 호출 : pipe 8.3 파이프 라이브러리 함수 : popen, pclose 8.4 명명된 파이프(Named Pipe)
9장 메시지 큐(Message Queue) 9.1 프로세스 통신 개념 9.2 메시지 큐(Message Queue)의 구조 9.3 메시지 큐의 생성 : msgget 9.4 메시지 큐의 제어 : msgctl 9.5 메시지 큐의 연산 : msgsnd, msgrcv
10장 세마포어(Semaphores) 10.1 세마포어의 소개 10.2 세마포어의 생성 : semget 10.3 세마포어의 제어 : semctl 10.4 세마포어의 연산 : semop
11장 공유 메모리 11.1 공유 메모리의 생성 : shmget 11.2 공유 메모리의 제어 : shmctl 11.3 공유 메모리의 연산 : shmat, shmdt
12장 소켓(socket) 12.1 Socket 소개 12.2 소켓 응용 예제 12.3 select() 함수를 이용한 클라이언트/서버 예제
13장 스레드 프로그래밍 13.1 스레드 구조와 사용법 13.2 스레드와 경량 프로세스 13.3 POSIX.lc 스레드 APls 13.4 스레드 동기화 객체 13.5 스레드 응용 예제
부록
|
예제로 배우는 리눅스 프로그래밍 완성
지은이 : 백정현
ISBN : 89-353-0357-7
금액 : 23,000원
● 발행날짜 : 2010년 8월 10일
● 페이지 : 552페이지
● 판매처 : 온라인 서점
● 강의자료 제공
책 소개
책 소개
대학 및 전문대학의 리눅스 프로그래밍, 운영 체제 실습, C 언어 프로그래밍의 고급 과정이나 시스템 프로그래밍 과정에서 다룰 수 있도록 집필하였다. 전체 13개의 장과 부록으로 구성하였으며, 1장에서는 리눅스를 이용하여 C 프로그램을 개발할 때 필요한 C 언어 라이브러리에 대하여 전반적인 소개를 하였으며, 2장에서는 파일시스템의 구조와 이를 이용한 입출력 함수를 설명하였다. 3장에서는 화일의 입출력과 디렉토리를 다루기 위한 함수들을 소개하고, 특히 4장에서는 병행 프로그래밍에서 발생되는 화일과 레코드의 공유를 위한 로킹(locking)에 대해서 설명하였다.5장에서는 리눅스의 단말기 입출력을 위한 소프트웨어 인터페이스에 관하여 상세하게 다루었다. 또한 6장에서는 프로세서의 생성과 수행 환경, 그리고 기본적인 프로세스 간의 통신 도구를 볼 수 있는 신호(signal)와 파이프(pipe)를 7장과 8장에서 다루었고, 고급 개념의 프로세스 간의 통신 도구인 메시지 큐(message queue)와 세마포어 및 공유 메모리를 9장과 10장 및 11장에서 각각 다루었다.
특히, 12장에서는 리눅스에서 네트워크 프로그래밍을 가능하게 하는 소켓(socket) 함수와 예제 프로그램들을 자세히 다루었으며, 마지막으로 13장에서는 리눅스에서 효율적인 병행 프로그래밍을 지원하는 도구인 스레드 프로그래밍에 대하여 많은 예제와 함께 다루었다.
저자소개
목차
1장 표준 C 라이브러리 함수1.1 표준 입출력 함수
1.2 표준 라이브러리 함수
1.3 문자열 처리 함수
1.4 바이트 스트림 처리 함수
1.5 메모리 관리 함수
1.6 시간 관련 함수
1.7 명령 라인 인수들과 스위치
1.8 다른 함수로의 분기
1.9 패스워드 관련 함수
1.10 그룹 관련 함수
1.11 암호화 관련 함수
2장 입출력 시스템 호출
2.1 화일 시스템의 내부 구조
2.2 화일의 내부 표현
2.3 화일 열기 : open
2.4 화일 닫기 : close
2.5 화일 읽기 : read
2.6 화일 쓰기 : write
2.7 화일의 임의 접근 : lseek
2.8 화일 디스크립터 복사 : dup
2.9 화일의 제어 : fcntl
3장 화일과 디렉토리
3.1 화일의 사용자와 소유권
3.2 화일의 접근 : access
3.3 화일의 크기 제한 : ulimit
3.4 화일 생성 마스크 : umask
3.5 화일의 상태 : stat, fstat
3.6 화일의 모드 변경 : chmod
3.7 화일 소유자의 변경 : chown
3.8 화일의 접근 시간 변경 : utime
3.9 디렉토리의 구조
3.10 디렉토리의 프로그래밍
4장 화일과 레코드 로킹
4.1 레코드 로킹의 개념
4.2 화일 제어 함수의 응용 : fcntl
4.3 레코드 로킹 함수 : lockf
5장 단말기 입출력 제어
5.1 소개
5.2 인터페이스(Interface)
5.3 입출력 인터페이스
5.4 단말기 입출력
5.5 장치 제어 : ioctl
6장 프로세스 생성과 수행
6.1 프로세스의 소개
6.2 프로세스의 사용자 식별자(ID) : setuid, setgid
6.3 프로세스의 크기 변경 : brk, sbrk
6.4 프로세스의 환경 변수 : getenv, putenv
6.5 프로세스의 생성 : fork
6.6 다른 프로그램의 호출 : exec
6.7 프로세스의 종료 : exit
6.8 프로세스의 종료를 기다림 : wait
7장 신호(Signal)
7.1 신호의 개념
7.2 신호의 종류
7.3 신호의 설정과 수신 : signal
7.4 신호의 송신 : kill
7.5 알람 : alarm
7.6 비지역 분기 : setjmp, longjmp
7.7 프로세스의 정지 : pause
7.8 프로세스의 수면 : sleep
7.9 신호의 관리 : sigset
8장 파이프(Pipe)
8.1 파이프의 소개
8.2 파이프 시스템 호출 : pipe
8.3 파이프 라이브러리 함수 : popen, pclose
8.4 명명된 파이프(Named Pipe)
9장 메시지 큐(Message Queue)
9.1 프로세스 통신 개념
9.2 메시지 큐(Message Queue)의 구조
9.3 메시지 큐의 생성 : msgget
9.4 메시지 큐의 제어 : msgctl
9.5 메시지 큐의 연산 : msgsnd, msgrcv
10장 세마포어(Semaphores)
10.1 세마포어의 소개
10.2 세마포어의 생성 : semget
10.3 세마포어의 제어 : semctl
10.4 세마포어의 연산 : semop
11장 공유 메모리
11.1 공유 메모리의 생성 : shmget
11.2 공유 메모리의 제어 : shmctl
11.3 공유 메모리의 연산 : shmat, shmdt
12장 소켓(socket)
12.1 Socket 소개
12.2 소켓 응용 예제
12.3 select() 함수를 이용한 클라이언트/서버 예제
13장 스레드 프로그래밍
13.1 스레드 구조와 사용법
13.2 스레드와 경량 프로세스
13.3 POSIX.lc 스레드 APls
13.4 스레드 동기화 객체
13.5 스레드 응용 예제
부록