Pendant que je lisais un fichier de code source C, j'ai trouvé ces déclarations. (Ce code source a été écrit pour le programme système Linux. Il s'agit d'informations très importantes)
#include <time.h>
#include <stdio.h>
static timer_t* _interval_timer;
...
Au début, je voulais en savoir plus sur le 'timer_t'. J'ai donc recherché «time.h» sur Google pour obtenir des informations d'en-tête. Mais, il n'y avait pas de mots sur 'timer_t', mentionnant seulement 'time_t'.
Par curiosité, j'ai cherché et ouvert le fichier de bibliothèque standard 'time.h' c sur mon ordinateur 'mac' (comme vous le savez, le dossier / usr / include stocke les fichiers de bibliothèque standard c.) Mais ce fichier était le même que le précédent googlé.
Enfin, j'ai allumé mon système d'exploitation linux (ubuntu) à l'aide d'une machine virtuelle et ouvert le 'time.h' dans le dossier de bibliothèque standard linux c (le chemin du dossier est le même que OSX). Comme je m'y attendais, le fichier 'time.h' sous Linux a la déclaration de timer_t.
J'ai ajouté les lignes de code qui déclarent le type 'timer_t' ci-dessous.
#if !defined __timer_t_defined && \
((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timer_t)
# define __timer_t_defined 1
# include <bits/types.h>
/* Timer ID returned by `timer_create'. */
typedef __timer_t timer_t;
Ma question est la suivante.
Pourquoi 'timer_t' n'est défini que dans la bibliothèque standard linux c?
Cette situation se produit-elle souvent? Je veux dire, existe-t-il des fonctions ou des attributs définis différemment entre différents systèmes d'exploitation?
timer_t
n'est pas "uniquement défini sous linux", par exemple sous Windows / Cygwin, il est également défini. Selon les définitions des fichiers d'en-tête (Linux et Cygwin), il semble que ce soit un type standard POSIX. (Au-delà du fait que certaines plates-formes peuvent ne pas être conformes aux normes, je ne vois aucune situation spécifique qui "se produit couramment", comme vous l'avez formulée.) WRT votre question générale sur les différences dans les bibliothèques de langues; cela dépend si les fournisseurs respectent les normes ou avec quelles versions ils se conforment.