이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
Beginning Linux Programming
제3판
베스트
IT 모바일 top100 1주
가격
35,000
10 31,500
YES포인트?
1,750원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요
  • 교재기간 소량 입고 되는 도서로 배송이 지연 될 수 있습니다.

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

제1장 시작하기

유닉스, 리눅스, GNU에 대한 소개
유닉스란?
리눅스란?
GNU 프로젝트와 무료 소프트웨어 재단(Free Software Foundation)
리눅스 배포
리눅스 프로그래밍
리눅스 프로그램
C 컴파일러
실습하기 - 첫번째 리눅스 C 프로그램
개발 시스템 로드맵
실습하기 - 정적 라이브러리
도움말
실습하기 - 매뉴얼 페이지와 info
요약


제2장 쉘 프로그래밍

쉘로 프로그래밍하는 이유
철학...
쉘이란 무엇인가?
파이프와 리디렉션
출력 리디렉트하기
입력 리디렉트하기
파이프
프로그래밍 언어로서의 쉘
대화식 프로그램
스크립트 만들기
스크립트를 실행 가능하도록 만들기
쉘 문법
변수
실습하기 - 변수
실습하기 - 매개변수와 환경 변수
조건
제어 구조
실습하기 - if 명령 사용하기
실습하기 - elif를 사용하여 더 많은 검사를 수행하기
실습하기 - 고정된 문자열을 사용하는 for 반복문
실습하기 - 와일드카드 확장을 사용하는 for 반복문
실습하기 - Here We Go Again, Again
실습하기 - 사례 1: 사용자 입력
실습하기 - 사례 2: 패턴을 함께 모으기
실습하기 - 사례 3: 다중 구문 실행하기
실습하기 - AND 리스트
실습하기 - OR 리스트
함수
실습하기 - 간단한 함수
실습하기 - 값 반환하기
명령
실습하기 - 점 명령
실습하기 - 변수 내보내기
실습하기 - 신호 트랩하기
실습하기 - 테스트와 함께 find 사용하기
실습하기 - 기본 grep 사용법
실습하기 - 정규식
명령 실행
실습하기 - 매개변수 처리
히어 도큐먼트
실습하기 - 히어 도큐먼트 사용하기
실습하기 - 히어 도큐먼트의 또 다른 사용
스크립트 디버깅하기
그래픽을 보여주자 - Dialog 유틸리티
실습하기 - dialog 유틸리티 사용하기
실습하기
모두 합치기
요구사항
디자인
실습하기 - CD 응용프로그램
요약


제3장 파일 작업

리눅스 파일 구조
디렉토리
파일과 장치
시스템 호출과 장치 드라이버
라이브러리 함수
저수준 파일 액세스
write
read
open
초기 권한
실습하기 - 파일 복사 프로그램
파일을 관리하기 위한 다른 시스템 호출
표준 I/O 라이브러리
fopen
fread
fwrite
fclose
fflush
fseek
fgetc, getc, getchar
fputc, putc, putchar
fgets, gets
형식화된 입출력
printf, fprintf, sprintf
scanf, fscanf, sscanf
다른 스트림 함수
실습하기 - 다른 파일 복사 프로그램
스트림 에러
스트림과 파일 설명자
파일과 디렉토리 관리
chmod
chown
unlink, link, symlink
mkdir, rmdir
chdir, getcwd
디렉토리 스캔하기
opendir
readdir
telldir
seekdir
closedir
실습하기 - 디렉토리 스캔 프로그램
에러
strerror
perror
/proc 파일 시스템
고급 주제: fcntl과 mmap
fcntl
mmap
실습하기 - mmap 사용
요약


제4장 리눅스 환경

프로그램 인자
실습하기 - 프로그램 인자
getopt
실습하기 - getopt
getopt_long
환경 변수
실습하기 - getenv와 putenv
환경 변수의 사용
environ 변수
실습하기 - environ
시간과 날짜
실습하기 - time
실습하기 - gmtime
실습하기 - ctime
실습하기 - strftime과 strptime
임시 파일
실습하기 - tmpnam과 tmpfile
사용자 정보
실습하기 - 사용자 정보
호스트 정보
실습하기 - 호스트 정보
로깅
실습하기 - syslog
실습하기 - logmask
리소스와 제한
실습하기 - 리소스 제한
요약


제5장 터미널

터미널에서 읽고 쓰기
실습하기 - C로 된 메뉴 루틴
실습하기 - 출력 리디렉션 점검하기
터미널과 대화하기
실습하기 - /dev/tty 사용하기
터미널 드라이버와 일반 터미널 인터페이스(General Terminal Interface)
개요
하드웨어 모델
termios 구조체
입력 모드
출력 모드
제어 모드
로컬 모드
특수 제어 문자
터미널 속도
추가 함수
실습하기 - termios를 사용한 패스워드 프로그램
실습하기 - 각 문자 읽기
터미널 출력
터미널 형식
터미널 형식 식별하기
terminfo 항목 사용하기
실습하기 - 종합 터미널 제어
키 입력 검출
실습하기 - 고유의 kbhit
가상 콘솔
의사(pseudo) 터미널
요약


제6장 curses를 사용하여 텍스트 기반 화면 관리하기

curses와 컴파일하기
개념
실습하기 - 간단한 curses 프로그램
초기화와 종료
화면에 출력하기
화면으로부터 읽기
화면 지우기
커서 이동하기
문자 특성
실습하기 - 이동, 삽입, 특성
키보드
키보드 모드
키보드 입력
실습하기 - 키보드 모드와 입력
윈도우
WINDOW 구조체
일반화된 함수
윈도우를 이동하고 갱신하기
실습하기 - 다중 윈도우
화면 새로 고침 최적화
하위윈도우(subwindow)
실습하기 - 하위윈도우
키패드(Keypad)
실습하기 - 키패드 사용하기
색(Color)
실습하기 - 색
색 다시 정의하기
패드(pad)
실습하기 - 패드 사용하기
CD 모음 응용프로그램
실습하기 - 새로운 CD 모음 응용프로그램
실습하기 - main 살펴보기
실습하기 - 메뉴
실습하기 - 데이터베이스 파일 조작
실습하기 - CD 데이터베이스에 질의하기
요약


제7장 데이터 관리

메모리 관리
간단한 메모리 할당하기
실습하기 - 간단한 메모리 할당
큰 메모리 할당하기
실습하기 - 모든 물리적 메모리 요구하기
실습하기 - 사용 가능한 메모리
메모리 오용
실습하기 - 메모리 오용하기
널 포인터
실습하기 - 널 포인터에 액세스하기
메모리 해지하기
실습하기 - 메모리 해지하기
다른 메모리 할당 함수
파일 잠금
잠금 파일 만들기
실습하기 - 잠금 파일 만들기
실습하기 - 협동 잠금 파일
잠금 영역
잠금과 함께 읽고 쓰기
실습하기 - fcntl로 파일 잠그기
실습하기 - 파일의 잠금을 테스트하기
경쟁 잠금
실습하기 - 경쟁 잠금
다른 잠금 명령
교착 상태
데이터베이스
dbm 데이터베이스
dbm 루틴
dbm 액세스 함수
실습하기 - 간단한 dbm 데이터베이스
추가적인 dbm 함수
실습하기 - 데이터를 가져오고 지우기
CD 응용프로그램
디자인 갱신하기
dbm을 사용하는 CD 데이터베이스 응용프로그램
실습하기 - cd_data.h
실습하기 - app_ui.c
실습하기 - cdc_access.c
요약


제8장 MySQL

설치
미리 컴파일된 패키지
설치 후 구성
설치 후 문제 해결
MySQL 관리
명령
사용자를 만들고 권한 주기
패스워드
데이터베이스 만들기
데이터 형식
테이블 만들기
그래픽 도구
C에서 MySQL 데이터에 액세스하기
연결 루틴
에러 처리
SQL 구문 실행하기
실습하기
실습하기
기타 함수
CD 데이터베이스 응용프로그램
테이블 생성하기
데이터 추가하기
실습하기
C에서 응용프로그램 데이터에 액세스하기
요약


제9장 개발 도구

다중 소스 파일의 문제점
make 명령과 메이크파일
메이크파일의 문법
make의 옵션과 매개변수
실습하기 - 간단한 메이크파일
메이크파일의 주석
메이크파일의 매크로
실습하기 - 메이크파일에 매크로 사용하기
다중 대상
실습하기 - 다중 대상
내장 법칙
접미사(suffix)와 패턴 법칙
make로 라이브러리 관리하기
실습하기 - 라이브러리 관리
고급 주제: 메이크파일과 하위디렉토리
GNU make와 gcc
실습하기 - gcc -MM
소스 코드 제어
RCS
실습하기 - RCS와 GNU make
실습하기 - ident
SCCS
RCS와 SCCS 비교하기
CVS
gCVS
BitKeeper
매뉴얼 페이지 쓰기
소프트웨어 배포하기
패치 프로그램
다른 배포 유틸리티
RPM 패키지
RPM 패키지 파일로 작업하기
RPM 패키지 설치하기
RPM 패키지 빌드하기
다른 패키지 형식
개발 환경
xwpe
C-Forge
KDevelop
다른 환경
요약


제10장 디버깅

에러의 형식
일반적인 디버깅 기술
버그를 가진 프로그램
코드 검사
인스트루먼트(instrumentation)
실습하기 - 디버그 정보
제어 실행
gdb로 디버깅하기
gdb 시작하기
프로그램 실행하기
스택 추적
변수 살펴보기
프로그램의 소스 코드 보기
중단점(breakpoint) 지정하기
디버거에서 패치하기
gdb에 대한 더 많은 정보
다른 디버깅 도구
Lint: 프로그램에서 실수를 제거한다
함수 호출 도구
prof/gprof를 사용한 실행 프로파일링
어설션(assertion)
실습하기 - assert
메모리 디버깅
ElectricFence
실습하기 - ElectricFence
valgrind
실습하기 - valgrind
요약


제11장 프로세스와 신호

프로세스는 무엇인가?
프로세스 구조
프로세스 테이블
프로세스 보기
시스템 프로세스
프로세 작업 예약
새 프로세스 시작하기
실습하기 - system
실습하기 - execlp
실습하기 - fork
프로세스 기다리기
실습하기 - wait
좀비(zombie) 프로세스
실습하기 - 좀비
입력과 출력 리디렉션
실습하기 - 리디렉션
쓰레드
신호
실습하기 - 신호 처리
신호 보내기
실습하기 - 알람 시계
실습하기 - sigaction
신호 집합
요약


제12장 POSIX 쓰레드

쓰레드란?
쓰레드의 장단점
첫번째 쓰레드 프로그램
실습하기 - 간단한 쓰레드 프로그램
동시 실행
실습하기 - 두 쓰레드의 동시 실행
동기화(synchronization)
세마포어를 사용한 동기화
실습하기 - 쓰레드 세마포어
뮤텍스를 이용한 동기화
실습하기 - 쓰레드 뮤텍스
쓰레드 특성
실습하기 - detached 상태 특성을 설정하기
실습하기 - 작업 예약
쓰레드 취소하기
실습하기 - 쓰레드 취소하기
다수의 쓰레드
실습하기 - 여러 가지 쓰레드
요약


제13장 프로세스간 통신: 파이프

파이프란 무엇인가?
프로세스 파이프
실습하기 - 외부 프로그램으로부터 출력 읽기
popen으로 출력 전송하기
실습하기 - 출력을 외부 프로그램으로 전송하기
더 많은 데이터를 전달하기
실습하기 - 파이프로부터 대용량 데이터를 읽기
popen의 구현 원리
실습하기 - popen은 쉘을 시작한다
파이프 호출
실습하기 - pipe 함수
실습하기 - fork를 통한 파이프
부모 프로세스와 자식 프로세스
실습하기 - 파이프와 exec
닫혀진 파이프로부터 읽기
표준 입력과 표준 출력으로 사용되는 파이프
실습하기 - 파이프와 dup
명명된 파이프(named pipe): FIFO
실습하기 - 명명된 파이프 만들기
FIFO에 액세스하기
실습하기 - FIFO 파일에 액세스하기
실습하기 - FIFO 파일을 열기
실습하기 - FIFO를 사용한 프로세스간 통신
고급 주제: FIFO를 사용하는 클라이언트/서버
실습하기 - 클라이언트/서버 응용프로그램 예제
CD 데이터베이스 응용프로그램
목적
구현
실습하기 - 헤더 파일 cliserv.h
클라이언트 인터페이스 함수
실습하기 - 클라이언트 인터프리터
실습하기 - 검색
서버 인터페이스
실습하기 - server.c
파이프
실습하기 - 파이프 구현 헤더
실습하기 - 서버 함수
실습하기 - 파이프 처리
실습하기 - 클라이언트 함수
실습하기 - 서버 결과를 받기
응용프로그램 요약
요약


제14장 세마포어, 공유 메모리, 메시지 대기열

세마포어
세마포어의 정의
이론적인 예제
리눅스 세마포어 기능
세마포어 사용하기
실습하기 - 세마포어
공유 메모리
shmget
shmat
shmdt
shmctl
실습하기 - 공유 메모리
메시지 대기열
msgget
msgsnd
msgrcv
msgctl
실습하기 - 메시지 대기열
CD 데이터베이스 응용프로그램
실습하기 - 서버 함수 개정
실습하기 - 클라이언트 함수 개정
IPC 상태 명령
세마포어
공유 메모리
메시지 대기열
요약


제15장 소켓

소켓은 무엇인가?
소켓 연결
실습하기 - 간단한 로컬 클라이언트
실습하기 - 간단한 로컬 서버
소켓 특성
소켓 만들기
소켓 주소
소켓 명명하기
소켓 대기열 만들기
연결 허용하기
연결 요청하기
소켓 닫기
소켓 통신
실습하기 - 네트워크 클라이언트
실습하기 - 네트워크 서버
호스트 바이트 순서와 네트워크 바이트 순서
네트워크 정보
실습하기 - 네트워크 정보
실습하기 - 표준 서비스에 연결하기
인터넷 데몬(inetd)
소켓 옵션
다중 클라이언트
실습하기 - 다중 클라이언트를 위한 서버
select
실습하기 - select
다중 클라이언트
실습하기 - 개선된 다중 클라이언트/서버
데이터그램
요약


제16장 GTK+를 이용한 GNOME 프로그래밍

X에 대한 개요
X 서버
X 클라이언트
X 프로토콜
Xlib
도구 키트
윈도우 관리자
GUI를 위한 다른 방법 - 플랫폼 독립적인 윈도우 API
GTK+의 개요
GLib 형식 시스템
GTK+ 객체 시스템
GNOME 개요
GNOME/GTK+ 개발 라이브러리 설치하기
실습하기 - 평범한 GtkWindow
이벤트, 신호, 콜백
실습하기 - 콜백 함수
패킹 상자(packing box) 위짓
실습하기 - 위짓 컨테이너 레이아웃
GTK+ 위짓
GtkWindow
GtkEntry
실습하기 - 사용자 이름과 패스워드 입력
GtkSpinButton
실습하기 - GtkSpinButton
GtkButton
실습하기 - GtkCheckButton, GtkToggleButton, GtkRadioButton
GtkTreeView
실습하기 - GtkTreeView
GNOME 위짓
실습하기 - GNOME 윈도우
GNOME 메뉴
실습하기 - GNOME 메뉴
실습하기 - GNOME 매크로를 이용하여 만드는 메뉴
대화 상자(dialog)
GtkDialog
모달 대화 상자
논모달 대화 상자
GtkMessageDialog
CD 데이터베이스 응용프로그램
실습하기 - cdapp_gnome.h
실습하기 - interface.c
실습하기 - callback.c
실습하기 - main.c
요약


제17장 Qt를 이용한 KDE 프로그래밍

KDE와 Qt의 개요
Qt 설치하기
실습하기 - QMainWindow
신호와 슬롯
실습하기 - 신호와 슬롯
실습하기 - QBoxLayout 클래스 사용하기
Qt 위짓
QLineEdit
실습하기 - QLineEdit
Qt 버튼
실습하기 - QButtons
QComboBox
실습하기 - QComboBox
QListView
실습하기 - QListView
대화 상자
QDialog
QMessageBox
QInputDialog
메이크파일을 간단하게 작성하기 위해 qmake 사용하기
메뉴와 도구 모음
실습하기 - 메뉴와 도구 모음을 가진 KDE 응용프로그램
KDE/Qt를 사용하는 CD 데이터베이스 응용프로그램
실습하기 - MainWindow
실습하기 - AddCdDialog
실습하기 - LogOnDialog
실습하기 - main.cpp
요약


제18장 장치(device) 드라이버

장치 드라이버 작성하기
장치
장치 계층
사용자 공간과 커널 공간
실습하기 - 커널 모듈
문자 장치
파일 연산
샘플 드라이버: schar
실습하기 - schar에 읽고 쓰기
실습하기 - ioctl
실습하기 - modinfo
schar의 작동 원리
시간과 지피(jiffies)
짧은 지연
타이머
실습하기 - schar에서 타이머 구현
프로세서 포기하기
작업 대기열
미리 정의된 작업 대기열
메모리 관리
가상 메모리 영역
주소 공간
메모리 위치의 형식
장치 드라이버에서 메모리 구하기
사용자 공간과 커널 공간 사이에 데이터 전송하기
더 많은 데이터 옮기기
간단한 메모리 매핑
I/O 메모리
Iomap에서 장치의 대입
I/O 메모리 mmap
실습하기 - Iomap 모듈
I/O 포트
인터럽트 처리
IRQ 처리기
바텀 해브즈(bottom halves)
재진입성
하나의 인터럽트를 불가능하게 만들기
원자성
임계 영역 보호하기
블록 장치
radimo - 간단한 램(RAM) 디스크 모듈
미디어 변경
블록 장치를 위한 ioctl
요청(request) 함수
버퍼 캐시
실습하기 - radimo
더 나아가기
디버깅
웁스(Oops) 추적
모듈 디버깅하기
매직 키
커널 디버거 - kdb
원격 디버깅
디버깅에 관한 일반적인 사항
이식성
데이터 형식
엔디안(endian)
정렬
커널 소스 분석
요약


제19장 리눅스 표준

C 프로그래밍 언어
간략한 역사 이야기
GNU 컴파일러 모음
gcc 옵션
인터페이스와 LSB
LSB 표준 라이브러리
LSB 사용자와 그룹
LSB 시스템 초기화
파일 시스템 계층 표준
/bin
/boot
/dev
/etc
/home
/lib
/mnt
/opt
/root
/sbin
/tmp
/usr
/var
표준에 관한 더 읽을거리
요약

찾아보기

저자 소개

역자 : 배재현
- KAIST 전산학과 졸업
- 현 코리아와이즈넛 검색솔루션 기술부 CSE팀 팀장
- 번역서 :『Professional C#』『'Beginning ASP.NET databases(using C#, VB.NET)』『예제로 배우는 리눅스 소켓 프로그래밍』『Efficient C++』 등

관련 분류

품목정보

발행일
2004년 11월 25일
쪽수, 무게, 크기
1100쪽 | 1931g | 188*254*60mm
ISBN13
9788956742236

리뷰/한줄평2

리뷰

8.0 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.