7

私が求めているのは、そのような型の意味と、それを使用できるインターフェイスです。

dev_tデバイス ID に使用されるPosix 仕様で説明されています。しかし、ファイル、ディレクトリ、FIFO、物理デバイスなど、パスによって記述されるオブジェクトのデバイス ID は何を意味するのでしょうか?

たとえば、呼び出すstat()と、そのような型のメンバーを含む構造体が得られます。ファイルシステム内のあらゆる種類のオブジェクトを統計できます。デバイス ID は、異なるファイル タイプに対して異なる意味を持つ必要があります。

4

3 に答える 3

10

大部分のプログラム (移植可能で単一の OS に接続されていないプログラム) での の唯一の使用はdev_t、2 つのファイル名またはファイル記述子が同じ基になるファイルを参照していることを確認することです。これは、2 つのファイルの構造のエントリst_inoとエントリが互いに一致する場合にのみ当てはまります。st_devstat

基本的にst_dev、ファイルが存在する「デバイス」(マウントされたパーティション、ネットワーク共有など)を示しst_ino、単一のデバイスのコンテキスト内でのファイルの一意の識別子です。

于 2012-03-09T17:08:33.177 に答える
7

実際には、 には次の 2 つのdev_t型付きフィールドがありstruct statます。

  • st_devは「ファイルを含むデバイスの [d] デバイス ID」であるため、2 つのファイルの が同じst_dev場合、それらは同じファイルシステム上にあります。
  • st_rdevは、キャラクタまたはブロック スペシャル ファイル、つまり でよく見られるファイルによって示されるデバイスのデバイス ID です/dev。他のタイプのファイルには意味がありません。
于 2012-03-09T14:53:44.607 に答える
6

カーネル内では、で定義されている dev_t 型がデバイス番号 (メジャー/マイナー) を保持するために使用されます。dev_t は、メジャー番号用に 12 ビット、マイナー番号用に 20 ビットが確保された 32 ビット量です。

于 2014-01-25T12:57:43.073 に答える