Mientras leía los archivos de código fuente C, encontré estas declaraciones. (Este código fuente fue escrito para el programa del sistema Linux. Esta es información muy importante)
#include <time.h>
#include <stdio.h>
static timer_t* _interval_timer;
...
Al principio, quería saber más sobre el 'timer_t'. Así que busqué en Google 'time.h' para obtener información del encabezado. Pero, no había palabras sobre 'timer_t', solo mencionaba sobre 'time_t'.
Como curiosidad, busqué y abrí 'time.h' c archivo de biblioteca estándar en mi computadora 'mac' (como saben, / usr / include folder almacena c archivos de biblioteca estándar). Pero este archivo era el mismo que el anterior en google.
Finalmente, encendí mi sistema operativo Linux (ubuntu) usando una máquina virtual y abrí el 'time.h' en la carpeta de la biblioteca estándar de Linux c (la ruta de la carpeta es la misma que OSX). Como esperaba, el archivo 'time.h' en Linux tiene una declaración de timer_t.
Agregué las líneas de código que declaran el tipo 'timer_t' a continuación.
#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;
Mi pregunta es esta
¿Por qué 'timer_t' solo se define en la biblioteca estándar de Linux c?
¿Esta situación ocurre comúnmente? Quiero decir, ¿hay funciones o atributos definidos de manera diferente entre diferentes sistemas operativos?
timer_t
no está "solo definido en Linux", por ejemplo, en Windows / Cygwin también está definido. Según las definiciones en los archivos de encabezado (Linux y Cygwin) parece ser un tipo estándar POSIX. (Además de que algunas plataformas pueden no ajustarse a los estándares, no veo ninguna situación específica que "ocurra comúnmente", como la formuló). Escriba su pregunta general sobre las diferencias en las bibliotecas de idiomas; depende de si los proveedores cumplen con los estándares o con qué versiones cumplen.