목록시스템프로그래밍 (5)
Linux Programmer
Advanced 리눅스 시스템 네트워크 프로그래밍 3판 오탈자 정오표 (2019.09.09 버전) * 최근 업데이트 목록은 맨 아래의 history를 참고해 주시기 바랍니다. * 변경점에 대해서 쉽게 찾아보실 수 있도록 글자 배경색을 오렌지 색으로 표시해두었습니다. * 최신의 예제 소스 코드는 http://sunyzero.tistory.com/242 에서 다운받으시기 바랍니다. Chapter 2. 파일 처리 * p.80 코드 2.2의 13행 : 오타 수정전 dprintf(fd, "PID[%d] Low lovel file handle\n", getpid()); 수정후 dprintf(fd, "PID[%d] Low level file handle\n", getpid()); Chapter 4. 메모리 * P.1..
Advanced 리눅스 시스템 네트워크 프로그래밍 3판 (2016년 4월 출간) 예제 소스 코드 * 예제 소스 코드 파일 : (2018년 2월 6일 버전) * 압축을 풀면 하위 디렉토리가 생성됩니다. (소스 코드는 xz로 압축되었습니다. tar의 대문자 J 옵션으로 풀 수 있습니다. 아래 명령어를 참고하세요.) 압축 해제 명령 : tar xfJ alsp_3rd_20180206.tar.xz* 생성된 하위 디렉토리에서 make를 명령하면 하위 모든 예제가 컴파일 됩니다.* make clean을 하면 하위 모든 컴파일된 예제의 바이너리가 청소(삭제)됩니다. * 목차 CHAPTER 00 들어가기 전에헤더 파일과 묵시적 선언Feature test macro와 표준유닉스 역사와 표준안, 용어 및 정의 CHAPTER..
리눅스나 유닉스에서 사용되는 메시지큐는 XSI와 POSIX 두가지 방식이 있다. 이 두 메시지큐의 모델과 프로그래밍 방식에 대해 간략하게 살펴보자. 1. 유닉스 표준과 IPC 현재 유닉스 계열(리눅스 포함)은 OpenGroup의 SUS(Single UNIX Specification) 표준을 따르고 있다. SUS는 기존에 나왔던 유닉스 계열의 다양한 표준인 POSIX, SVR4(SysV Release4), BSD 등의 표준을 통합했기 때문에 같은 기능이 중복된 경우가 꽤 있다. 그 중에서도 IPC(Inter-Process Communication) 기법이 대표적이다. IPC는 좁은 의미로는 세마포어, 공유메모리, 메시지큐를 다루고 넓은 의미로는 파일, 소켓, 메모리맵 등을 포함한다. 하지만 일반적으로 IP..
gettimeofday는 유닉스, 리눅스 시스템 프로그래밍에서 시간을 구할 때 쓰던 함수이다. 마이크로초(백만분의 1초)단위로 구할 수 있는 기능을 가지고 있어서 많이 사용되는 함수이다. 그러나 앞으로는 gettimeofday는 사용하지 말아야할 함수가 되었다. 왜냐하면 gettimeofday는 2008년도 유닉스 표준인 SUSv4-2008에서 앞으로 제거될 구식(obsolescent) 함수로 지정했기 때문이다. 물론 하위 호환성을 위해서 gettimeofday 함수는 계속 제공될 것이다. 하지만 기본 시스템 라이브러리에서는 제거되고, 구식 라이브러리를 따로 포함해야 사용할 수 있게 될지도 모르기 때문에 차후에는 gettimeofday는 쓰지 않는 편이 좋다. 참고로 지금까지의 표준안의 행보로 봤을 때 ..
Advanced 리눅스 시스템 네트워크 프로그래밍 (2nd Edition) 예제 소스 코드 예제 소스 코드 파일 : (2014년 8월 16일 수정판) * 압축을 풀면 하위 디렉토리가 생성됩니다. * 생성된 하위 디렉토리에서 make를 명령하면 하위 모든 예제가 컴파일 됩니다. * make clean을 하면 하위 모든 컴파일된 예제의 바이너리가 청소(삭제)됩니다. 2014-08-1610장 리얼타임 확장 : aio_list.c aio_list_sig.c에서 치명적인 버그가 발견되어 수정되었습니다. 자세한 내용은 정오표에 업데이트 될 것이니 참고하시기 바랍니다. * 2판은 약 200여 페이지가 새로 추가되어 부득이하게 책 무게가 늘었습니다. 또한 기존 내용중에서도 수정, 보완된 것으로 인해 4~50% 정도가 ..