2012-12-27 5 views
11

S_IRUSR è una costante di macro in sys/stat.h di posix. rappresenta il bit di autorizzazione alla lettura dell'utente.qual è il significato di "I" in S_IRUSR

il prefisso S_ può stare per 'stato di' il RUSR può essere letto dell'utente. ma qual è il significato di "Io"?

risposta

16

La denominazione è storica ... risale ai primissimi giorni di UNIX. La "S" è per STAT, la "I" per INODE (un termine non proprio utilizzato in POSIX stesso al di fuori di Rationale), la "R" per READ e la "USR" per USER.

Gli inodi ottengono alcune menzioni e la struttura delle statistiche include anche "st_ino", che lo standard descrive come "Numero di serie del file". In molte implementazioni POSIX, un inode è una struttura di dati contenente tutti i meta-dati per il file (in gran parte ciò che viene letta dalla chiamata a stat()).

(Da Wikipedia :) Il motivo per designare questi come nodi "i" è sconosciuto. Quando è stato chiesto, il pioniere di Unix Dennis Ritchie ha risposto:

In realtà, non lo so neanche io. Era solo un termine che abbiamo iniziato a usare . "Indice" è la mia ipotesi migliore, a causa della struttura del file un po 'insolita che memorizza le informazioni di accesso dei file come una matrice piatta sul disco, con tutte le informazioni della directory gerarchica a parte questo. Quindi il numero i è un indice in questo array, l'i-node è l'elemento selezionato dell'array.

(La notazione "i-" è stato utilizzato nel primo manuale di edizione;. Il suo segno meno è stato gradualmente abbandonato)