Mentre stavo leggendo un file di codice sorgente C, ho trovato queste dichiarazioni. (Questo codice sorgente è stato scritto per il programma di sistema linux. Questa è un'informazione molto importante)
#include <time.h>
#include <stdio.h>
static timer_t* _interval_timer;
...
All'inizio, volevo sapere di più su "timer_t". Quindi ho cercato su google "time.h" per ottenere informazioni sull'intestazione. Ma non c'erano parole su "timer_t", ma solo su "time_t".
Per curiosità, ho cercato e aperto il file di libreria standard 'time.h' c nel mio computer 'mac' (come sapete, / usr / include archivi di cartelle c file di libreria standard.) Ma questo file era lo stesso del precedente su Google.
Alla fine, ho acceso il mio sistema operativo Linux (Ubuntu) usando la macchina virtuale e ho aperto 'time.h' nella cartella della libreria standard di linux c (il percorso della cartella è lo stesso di OSX). Come mi aspettavo, il file 'time.h' in Linux ha la dichiarazione di timer_t.
Ho aggiunto le righe di codice che dichiarano il tipo 'timer_t' di seguito.
#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;
La mia domanda è questa
Perché 'timer_t' è definito solo nella libreria standard di linux c?
Questa situazione si verifica comunemente? Voglio dire, ci sono funzioni o attributi definiti in modo diverso tra diversi sistemi operativi?
timer_t
non è "definito solo in Linux", ad esempio su Windows / Cygwin è anche definito. Secondo le definizioni nei file di intestazione (Linux e Cygwin) sembra essere un tipo standard POSIX. (A parte il fatto che alcune piattaforme potrebbero non essere conformi agli standard, non vedo alcuna situazione specifica che "accade comunemente", come è stata formulata.) SCRIVI la tua domanda generale sulle differenze nelle librerie di lingue; dipende dal fatto che i fornitori rispettino gli standard o con quali versioni rispettino.