본문 바로가기

오탈자 정보

[사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이]_오탈자

현재까지 발견된 위 책의 오탈자 정보와 오류, 그리고 보다 매끄러운 문장을 위해 수정한 내용을 알려드리며, 아울러 집필과 편집 시에 미처 확인하지 못하고 불편을 끼쳐 죄송하다는 말씀을 드립니다. 아래의 오탈자 사항은 추후 재쇄 시에 반영하도록 하겠습니다. 


이외의 오탈자 정보를 발견하시면 도서 커뮤티니(http://www.facebook.com/groups/LinuxProgrammingWithRaspberryPi)나 출판사(jeipub@gmail.com)로 연락주시면 고맙겠습니다. 




최종수정일자: 2017년 4월 26일

5쇄본 오탈자


118쪽 마지막줄 (저자 제공)

기존의 회로에 GND와 GPIO 22번 핀을 이용하여 스피커를 연결한다.

=>

기존의 회로에 GND와 GPIO 25번 핀을 이용하여 스피커를 연결한다.



수정일자: 2016년 4월 26일

3쇄본 오탈자


67쪽 표 2-11에서 10, 11항목 (저자 제공)

Control-F ==> Control-U

Control-U ==> Control-F


75쪽 밑에서 둘째줄 (저자 제공)

이름을 별로로 지정하고 싶다면 ==> 이름을 별도로 지정하고 싶다면


137쪽 첫째줄 (저자 제공)

앞에서 만든 c.txt의 ==> 앞에서 만든 2.txt의


137쪽 마지막 코드 박스에서 셋째줄 (저자 제공)

pi@raspberrypi ~ $ sudo chmod ug+x c.txt  ==>  pi@raspberrypi ~ $ sudo chmod ug+x 2.txt


150쪽 각주 6번 (저자 제공)

C 언어의 표준 라이브러리 헤더 파일인 <stdin.h>에 정의되어 있다.

==>

C 언어의 표준 라이브러리 헤더 파일인 <stdio.h>에 정의되어 있다.


175쪽 4.3.2절 바로 윗문단 (저자 제공)

다시 umask의 값을 420으로 바꾸면 0666 & -480 = 0246(-w-r--rw-) 권한의 파일이 생성된다.

==>

다시 umask의 값을 420으로 바꾸면 0666 & -420 = 0246(-w-r--rw-) 권한의 파일이 생성된다.


183쪽 '따라 하기' 둘째줄 (저자 제공)

‘$ chmod 0022’ 명령을 실행해서 ==> ‘$ umask 0022’ 명령을 실행해서


237쪽 코드 5-3의 15행(빈 줄 포함) (저자 제공)

perror("[ERROR\ : fork( )"); ==> perror("[ERROR] : fork( )");


246쪽 표 5-16에서 왼쪽 항목명 (저자 제공)

호출 후 변경되지 값 ==> 호출 후 변경되지 않는


298쪽 각주 9에서 (저자 제공)

옥텟(Octet)은 4바이트 단위를 의미한다. ==> 옥텟(Octet)은 8바이트 단위를 의미한다.


303쪽 그림 6-13 제목 (저자 제공)

그림 6-13 커널 영역과 유저 영역 ==> 그림 6-13 TCP/IP와 소켓


329쪽 두 번째 코드 박스에서 21번째 줄(빈 행 포함) (저자 제공)

int csock = accept(ssock, (struct sockaddr*)&server_addr, &clen);

==>

int csock = accept(ssock, (struct sockaddr*)&client_addr, &clen);


481쪽 코드 박스에서 (저자 제공)

pi@raspberrypi ~ $ git clone git://gitorious.org/qt/qt5.git qt5

==>

pi@raspberrypi ~ $ git clone https://code.qt.io/qt/qt5.git


570쪽 첫 번째 줄에서 (저자 제공)
입출력의 효율을 높이기 위해서 4바이트(4바이트 × 8비트 = 32비트)씩 정렬되기 때문에
==>
입출력의 효율을 높이기 위해서 4개(4바이트 × 8비트 = 32비트)씩 정렬되기 때문에

575쪽 다섯 번째 줄에서 (저자 제공)
전체 시스템 호출의 숫자가 4의 배수가 넘는 경우에 4바이트에 맞춰서
==>
전체 시스템 호출의 숫자가 4의 배수가 넘는 경우에 4개의 배수에 맞춰서


수정일자: 2016년 3월 18일

2쇄본 오탈자


12쪽 그림 1-8 (저자 제공)

Micro USB(5V 1A DC) ==> Micro USB(5V 2A DC)


19쪽 16번 각주 (저자 제공)

http://www.raspberrypi.org/downloads

==> 

새로운 버전의 Raspbian은 http://www.raspberrypi.org/downloads에서 다운로드할 수 있다. 기존의 Wheezy는 http://debian.rutgers.edu/raspbian_images/raspberrypi/images/raspbian에서 다운로드가 가능하다.


88쪽 박스 본문 첫째줄 (저자 제공)

화면에 “abc”가 출력되고 ==> 화면에 "123"이 출력되고


122쪽 그림 3-27 (저자 제공)

(아래와 같이 저항의 위치를 수정합니다.)



123쪽 그림 3-28 (저자 제공)

(아래와 같이 저항의 위치를 수정합니다.)



127쪽 두 번째 코드 박스 (저자 제공)

pi@raspberrypi ~ $ sudo ./wiringled 2  

==> 

pi@raspberrypi ~ $ sudo ./wiringmotor 2


134쪽 코드 9행(빈 행 포함) (저자 제공)

gpoipins[i] ==> gpiopins[i]


154쪽 두 번째 코드 박스 (저자 제공)

int ioctl(int fd , int cmd , /* int arg */ … )

==>

int ioctl(int fd , int cmd , /* int arg */ … );


175쪽 가운데 코드 박스 3행 (저자 제공)

touch d.txt ==> touch 4.txt


211쪽 코드 박스 6행 (저자 제공)

ame: ==> Name:


227쪽 코드 박스 1행(들여쓰기) (저자 제공)

    printf("SIGUSR1 is catched\n");

    } else if(signo == SIGUSR2) {     /* SIGUSR2 시그널이 발생했을 때 처리 */

==>

       printf("SIGUSR1 is catched\n");

    } else if(signo == SIGUSR2) {     /* SIGUSR2 시그널이 발생했을 때 처리 */


238쪽 그림 5-17 (저자 제공)

(다음과 같이 코드 들여쓰기를 수정합니다.)




272쪽 코드 박스 1~2행 (저자 제공)

(다음과 같이 코드 들여쓰기를 수정합니다.)

            printf("Parent(%d) : %d\n", i, *cVal);

        };

  }

==>

      printf("Parent(%d) : %d\n", i, *cVal);

    };

  }



304쪽 표 6-5 첫번째 항목

사용하고자 하는 통신 프로토콜을 지정한다. ==> 네트워크 통신을 위한 소켓을 생성한다.


304쪽 표 6-5 첫번째 항목


316쪽 코드 박스 2행 (저자 제공)

Hello World ==> Hello World↲


322쪽 마지막 코드 박스 2행 (저자 제공)
Hello World ==> Hello World↲

341쪽 그림 6-27 (저자 제공)
XHTML 5 ==> HTML 5

422쪽 마지막 문단 첫째줄 (저자 제공)
빨간색에서 상위 5바이트, 녹색에서 상위 6바이트, 파랑색에서 상위 5바이트를 취한 것이 16비트 색상 방식이고,
==>
빨간색에서 상위 5비트, 녹색에서 상위 6비트, 파란색에서 하위 5비트를 취한 것이 16비트 색상 방식이고,

436쪽 코드 밑에서 17행(빈 행 포함) (저자 제공)
(코드와 들여쓰기를 다음과 같이 수정합니다.)

    /* 프레임 버퍼에 대한 메모리 맵을 수행한다. */
    pfbmap = (unsigned short *)mmap(0, cols*rows*2, PROT_READ|PROT_WRITE,
                                          MAP_SHARED, fbfd, 0);
        if((unsigned)pfbmap == (unsigned)-1) {
        perror("mmap()");
        return -1;
    }
==>
    /* 프레임 버퍼에 대한 메모리 맵을 수행한다. */
    pfbmap = (unsigned short *)mmap(0, cols*rows*2, PROT_READ|PROT_WRITE,
                                          MAP_SHARED, fbfd, 0);
    if(pfbmap == NULL) {
        perror("mmap()");
        return -1;
    }

453쪽 그림 그림 7-39 (저자 제공)
(첫 번째 그림과 두 번째 그림의 순서를 서로 바꿉니다.)


465쪽 그림 8-1 NUI 설명에서 (저자 제공)

상기시키는

조건 없는

==>

직접적인(Direct)

직관적인(Intuitive)

유발하는(Evocative)

조건 없는(Unmeditated)

사용자 중심의(Contextual)


467쪽 두 번째 문단 첫째줄 (저자 제공)

1984는 ==> 1984년


474쪽 그림 8-12 (저자 제공)

webkit ==> webkit/WebEngine


475쪽 표 8-2의 8번째 항목 (저자 제공)

QtWebKit ==> QtWebKit/QtWebEngine


496쪽 밑에서 두번째 문단 셋째줄 (저자 제공)

메타 코드(Meta Code)라고 부르고, ==> 메타 오브젝트 코드(Meta-Object Code)라고 부르고,


514쪽 표 8-8의 마지막 항목 (저자 제공)

QFromLayout ==> QFormLayout



수정일자: 2015년 11월 12일

1쇄본 오탈자



88쪽 아래애서 10번째 줄 (저자 제공)

(Shard)  (shared)


104쪽 아래에서 2번째 줄 (저자 제공)


125쪽 그림 3-30 (저자 제공)

(아래와 같이 저항의 위치를 수정합니다.)


251쪽 코드에서 19행(빈 행 포함) (저자 제공)

close(pfd[0]); → close(pfd[1]);


262쪽 코드에서 3행(저자 제공)

char mtext[1];  char mtext[BUFSIZ];


303쪽 6.1.2절 첫 문단(저자 제공)

BSD(Berkley Software Distribution) → BSD(Berkeley Software Distribution)


381쪽 아래에서 6번째 줄(유*환 님 제보)

프로세서 프로세스


560쪽 그림 9-5의 마지막 블록에서(유*환 님 제보)

애플리케이션 디바이스

(그림 위쪽 블록의 '애플리케이션'은 맞습니다.)