2012-12-27 16 views
11

S_IRUSR ist eine Makrokonstante in sys/stat.h von posix. es steht für Benutzer Leseberechtigung Bit.Was bedeutet "I" in S_IRUSR

das Präfix S_ steht möglicherweise für 'status von' die RUSR vielleicht Lesen des Benutzers. aber was bedeutet "ich"?

Antwort

16

Die Namensgebung ist historisch ... stammt aus den frühesten Tagen von UNIX. Das "S" ist für STAT, das "I" für INODE (ein Begriff, der in POSIX selbst außerhalb der Rationale nicht wirklich verwendet wird), das "R" für READ und das "USR" für USER.

Inodes erhalten ein paar Erwähnungen, und die Stat-Struktur enthält auch "st_ino", was der Standard als "File Serial Number" beschreibt. In vielen POSIX-Implementierungen ist ein Inode eine Datenstruktur, die alle Metadaten für die Datei enthält (von denen vieles von dem Aufruf stat() gelesen wird).

(Aus Wikipedia :) Der Grund für die Bezeichnung dieser als "i" Knoten ist unbekannt. Wenn gefragt, antwortete Unix-Pionier Dennis Ritchie:

In Wahrheit weiß ich auch nicht. Es war nur ein Begriff, den wir zu verwenden begonnen haben. "Index" ist meine beste Vermutung, wegen der etwas ungewöhnlichen Datei Systemstruktur, die die Zugriffsinformationen von Dateien als eine flache Array auf der Festplatte gespeichert, mit allen hierarchischen Verzeichnisinformationen lebt davon abgesehen. Somit ist die i-Nummer ein Index in diesem Array, der i-Knoten ist das ausgewählte Element des Arrays.

(Die "i-" Notation wurde in der 1. Auflage Handbuch;. Seine Bindestrich fallen gelassen wurde nach und nach)