Système d'exploitation: Debian 9 (Linux 4.9)
Compilateur: GCC 8.2
Actuellement, j'inclus <stddef.h>
(où size_t
est défini) et <stdint.h>
(où la plupart des types intégraux sont définis), mais je n'ai toujours pas ssize_t
.
Où est-il défini?
( https://stackoverflow.com/a/29984840/6872717 ):
La division de l'en-tête POSIX et C en fichiers à grain fin provient probablement de l'ancien temps où la compilation pouvait prendre beaucoup de temps et l'ajout de fichiers d'en-tête inutiles allongeait le temps.
Si vous n'avez besoin que des types de système d'exploitation, par exemple pour les prototypes de vos fonctions, alors juste
#include <sys/types.h>
. Cependant, si vous avez besoin des définitions de fonctions, vous#include <unistd.h>
ou l'un des autres en-têtes du système, selon les besoins.
Soit #include <unistd.h>
pour de nombreuses fonctions POSIX, ou simplement #include <sys/types.h>
pour un petit en-tête contenant le type.