Ich versuche, Dateitypen für Verzeichniseinträge (Windows Unix etc ..) zu identifizieren.Dateityp Indikator, sys/stat.h st_mode regulären Dateicode Wert
In sys/stat.h des hohen Auftrags nybble des st_mode Wort haben die codierten Werte:
#define S_IFDIR 0x4000 /* directory */
#define S_IFIFO 0x1000 /* FIFO special */
#define S_IFCHR 0x2000 /* character special */
#define S_IFBLK 0x3000 /* block special */
#define S_IFREG 0x8000 /* or just 0x0000, regular */
Aus dem Kommentar scheint es der nybble sein könnte entweder 0 oder 8 darstellen eine ‚reguläre Datei ".
So stellt sich die Frage: unter welchen Umständen ist es 0 und nicht 8? Wenn ich diese Codes definiert hätte, hätte ich 0 reserviert unbekannt/undefined/ungültig/keine-Datei oder so ähnlich.
der Tat das S_ISREG Makro ist:
#define S_ISREG(m) ((m) & S_IFREG)
Dies scheint mir würde, um anzuzeigen, dass sollte eine reguläre Datei immer zu erwarten werden, um den Code 8 (würde und 0 ein abberation sein?).
Wäre es eine gültige Annahme, 0 als unbekannte oder ungültige Datei zu interpretieren und den Kommentar 'oder nur 0x0000' zu ignorieren und immer 8 für alle regulären Dateien zu erwarten?