Como você provavelmente já adivinhou, nem todo erro pode acontecer em todas as chamadas do sistema.
Se você começar com /usr/include/errno.h
, provavelmente poderá rastrear as constantes de manifesto como "EPERM" ou "EINTR". Eu os encontrei em:
/usr/include/asm-generic/errno-base.h
e
/usr/include/asm-generic/errno.h
mas parece que pode haver alguma variação por distro ou versão da libc.
O Linux parece ser muito bom em ter os erros que qualquer chamada de sistema pode manifestar na página man daquela chamada do sistema: man 2 read
ou man 2 socket
por exemplo. Isso não é tradicionalmente verdade para as várias versões do Unix que provavelmente ainda estão por aí. Eu não tenho acesso a um sistema * BSD para verificar isso em Unixes modernos.