일부 C 라이브러리 파일은 #include
맨 위에 여러 파일을 표시합니다. 예를 들어 man connect
다음을 보여주세요 .
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
connect
그러나 명령 을 호출하려면 sys/socket.h
. 다른 파일이 포함되도록 소스 코드를 정렬하는 이유는 무엇입니까? 포함하지 않으려는 특정 상황이 있습니까 sys/types.h
?
답변1
~에서리눅스 매뉴얼 페이지댓글 섹션:
POSIX.1-2001은 inclusion을 요구하지 않으며
<sys/types.h>
Linux에서는 이 헤더가 필요하지 않습니다. 그러나 일부 역사적(BSD) 구현에는 이 헤더가 필요하며 이식 가능한 응용 프로그램은 이를 포함하는 것이 현명할 수 있습니다.
그래서 sys/types.h
Mac 매뉴얼 페이지에도 이것이 포함되어 있는 것 같습니다.