$ man 2 read
...
READ(2) Linux Programmer's Manual READ(2)
NAME
read - read from a file descriptor
SYNOPSIS
#include <unistd.h>
...
Existe uma maneira fácil de descobrir em qual arquivo de cabeçalho uma declaração de função C está? cd
ing em /usr/include
e em execução ( grep -E 'system.*\(' *.h -R
) funciona com alguma tentativa e erro, mas não há uma maneira mais fácil de fazer isso?
Se você procurar nos arquivos de cabeçalho em seu sistema, você encontrará em qual arquivo de cabeçalho a função é declarada em seu sistema. Pode ser difícil, pois às vezes a função é declarada por meio de uma macro complexa. E só lhe dirá qual arquivo de cabeçalho declara a função no seu sistema; isso pode até ser um arquivo de cabeçalho que você não pode incluir diretamente porque precisa de outros cabeçalhos para vir em primeiro lugar.
A única maneira segura de encontrar qual arquivo de cabeçalho incluir é consultar a documentação da biblioteca que fornece a função. Para a biblioteca padrão, você pode consultar:
man 3 function_name
ou man 2 function_name
- a diferença entre 2 e 3 é amplamente histórico) ou outra documentação (por exemplo, o GNU manual do libc no Linux).