Você pode usar o manual da Glibc como referência. Não é para principiantes absolutos, mas se você é razoavelmente fluente em C, você deve ser capaz de ler uma seção e escrever um programa de trabalho.
Você pode encontrar a fonte das ferramentas GNU no site GNU ; a maneira mais fácil de obtê-lo é obter os pacotes de origem em sua distribuição do Linux (por exemplo, apt-get source coreutils
se sua distribuição usa utilitários de empacotamento do Debian). Eu recomendo começar com BusyBox ao invés das ferramentas GNU. BusyBox é um conjunto de utilitários para sistemas Linux embarcados; é menor e mais simples que os utilitários GNU.
Você pode executar strace ls
para ver o que o sistema está chamando ls
. Note que quando você escreve um programa, você não chama chamadas de sistema diretamente, você chama funções na biblioteca C que fazem chamadas do sistema. Para coisas como manipulação de arquivos, as funções da biblioteca C, como open
e read
, são muito próximas das chamadas do sistema.
Para aprender, um livro (em papel) é geralmente útil. Programação avançada no ambiente UNIX® (APUE ) é um clássico. Se você conseguir, certifique-se de obter a segunda edição, já que a primeira é bastante antiga. Este livro é a referência, mas outros livros podem ser mais adequados para iniciantes; compre por aí.