最近、「dirent」構造 (dirent.h 内) を調べていて、その定義に少し戸惑いました。
注: このヘッダー ファイルは、私の学校の Solaris マシンのものです。
typedef struct dirent {
ino_t d_ino;
off_t d_off;
unsigned short d_reclen;
char d_name[1];
} dirent_t;
特に d_name フィールド。これはオペレーティング システムでどのように機能しますか? null で終了する文字列を格納する必要がある場合、単一の文字の配列は何に役立ちますか? 配列の最初の要素でアドレスを取得できることは知っていますが、まだ混乱しています。明らかに何かが起こっていますが、私には何が起こっているのかわかりません。自宅の Fedora Linux システムでは、このフィールドは単純に次のように定義されています。
char d_name[256];
明らかな理由から、これはより理にかなっています。Solarisヘッダーファイルが構造体を定義する理由を誰かが説明できますか?