C 함수 선언이 어느 헤더 파일에 있는지 알아내는 쉬운 방법이 있습니까? cd
ing into /usr/include
및 run( grep -E 'system.*\(' *.h -R
)에는 약간의 시행착오가 필요하지만 이를 수행하는 더 쉬운 방법은 없습니까?
답변1
$ man 2 read
...
READ(2) Linux Programmer's Manual READ(2)
NAME
read - read from a file descriptor
SYNOPSIS
#include <unistd.h>
...
답변2
시스템에서 헤더 파일을 검색하면 함수가 선언된 시스템의 헤더 파일에서 찾을 수 있습니다. 때로는 함수가 복잡한 매크로를 통해 선언되기 때문에 이것이 어려울 수 있습니다. 어떤 헤더 파일이 함수를 선언하는지 알려줄 뿐입니다.당신의시스템; 이는 다른 헤더를 먼저 포함해야 하기 때문에 직접 포함할 수 없는 헤더일 수도 있습니다.
포함할 헤더 파일을 찾는 유일한 안전한 방법은 해당 기능을 제공하는 라이브러리에 대한 설명서를 참조하는 것입니다. 표준 라이브러리의 경우 다음을 참조할 수 있습니다.
- C 표준(C89=C90,C99또는C11)는 C가 실행되는 모든 플랫폼에서 사용할 수 있는 기능을 정의합니다.
- 이것POSIX/단일 Unix 표준(POSIX:2004,POSIX:2008)는 각 UNIX 계열 플랫폼에서 사용할 수 있는 기능을 정의합니다.
- 귀하의 플랫폼에는 다른 기능이 있거나 추가 기능을 제공할 수 있습니다. 맨페이지(
man 3 function_name
또는man 2 function_name
-의 차이점) 를 참조하세요.2와 3주로 역사적) 또는 기타 문서(예:GNU libc 매뉴얼리눅스에서).