우선 size_t 와 ssize_t의 정의는

커널 소스의 include/linux/types.h 와
호스트 컴퓨터의 /usr/include/linux/types.h
에서 찾아볼 수 있다.

이 둘은 architecture portability 를 위함이다.

보통 x86의 int는 4byte의 크기를 갖고 있다. 이러한 사실을 기반으로 프로그래밍을 할때, 4바이트의 자료형에 대해서 int를 선언하곤한다.
하지만 만약에 int가 4byte의 크기를 갖지 않는 아키텍처에 위의 프로그램이 포팅된다면 제대로 동작하지 않을 것이다.

따라서, 4byte의 크기를 갖는 자료형에 대해, 아키텍처와 상관없이 사용하는 데이터 타입이 size_t 와 ssize_t 이다. 나중에 포팅이 되었더라도 typdef를 통해서 size_t의 값을 제 설정해주면 프로그램이 잘 동작할 것이다.

WRITTEN BY
RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.

,