FSTAT(1)

名称
fstat - ファイルのステータスを表示する

書式
fstat [-fmnv] [-M core] [-N system] [-p pid] [-u user] [file ...]

解説
fstat は、現在オープンされているファイルについての情報を表示します。 オープンされているファイルとは、プロセスによって明示的にオープンされている もの、ワーキングディレクトリ、ルートディレクトリ、アクティブな実行可能 テキストや、カーネルのトレースファイルなどを指します。引数が何も与え られなければ、 fstat はシステム中でオープンされているすべてのファイルについての情報を表示します。

オプション:

-f  表示する情報を、 filename で指定されたファイルと同じファイルシステム のものに制限します。引数が指定されていない場合は、カレントディレクトリ を含むファイルシステムのものに制限されます。たとえば、 /usr/src 以下のディレクトリでオープンされているすべてのファイルを見つけるには、 “fstat -f /usr/src” としてください。

-M core
    名前に関するリストから値を取り出す際、デフォルトの /dev/kmem のかわりに core を使います。

-N system
    名前のリストを取り出す際、デフォルトの /kernel のかわりに system を使います。

-m  メモリマップされたファイルをリストに含めます。 更なる処理が必要であるため、通常はこれらは除外されています。

-n  数値フォーマットで表示を行います。マウントポイントの名前を表示する かわりに、そのファイルシステムにおけるデバイス番号 (メジャー、マイナー) を表示します。特殊ファイルに関しては、 /dev の下のファイル名 は参照されず、特殊デバイスのデバイス番号が表示されます。また、 ファイルの属性も記号ではなく、8 進数で表示されます。

-p pid
    指定されたプロセス ID のプロセスによってオープンされているすべてのファイル の情報を表示します。

-u user
    指定されたユーザによってオープンされているすべてのファイル の情報を表示します。

-v  詳細報告モード。システムのデータ構造体を見つけるのに失敗した場合などに エラーメッセージを表示します (デフォルトでは無視します)。これらの 構造体の多くは、動的に生成されたり消去されたりするもので、 fstat を実行中に 消えてしまう可能性があります。これは、 fstat 実行中にも、システム の残りの部分が動いているためで、ごく普通のことですし、避けることはできません。

file ...
    表示する情報を、指定されたファイル filename に限定します。

以下のような項目が表示されます。

USER
    プロセスの所有者のユーザ名 (実効ユーザ ID のものが表示されます)

CMD プロセスのコマンド名

PID プロセスID

FD  プロセスごとのオープンしているファイルのファイル番号、もしくは 以下の特別な名前のどれかです。

        text	- 実行可能テキストの inode
        wd	- 現在のワーキングディレクトリ
        root	- ルートの inode
        tr	- カーネルトレースファイル
        mmap	- メモリマップされたファイル

    ファイル番号のあとにアスタリスク記号 ``*'' がある場合は、ファイルは inode ではなく、ソケットや FIFO であったり、そのファイルにエラーがあるのかもしれません。この 場合、残りの行は後ろのヘッダと一致しません。 -- 行のフォーマットは、 ソケット のところで説明します。

MOUNT
    -n オプションが指定されていなければ、このヘッダが現れます。 マウントされているパス名は、ファイルが存在しているファイルシステムです。

DEV -n が指定されると、このヘッダが現れます。ファイルが存在しているデバイス のメジャー番号とマイナー番号です。

SZ|DZ
    ファイルがキャラクタデバイスファイルやブロックデバイスファイルでなけ れば、そのファイルのバイト数を表示します。デバイスファイルあって -n が 指定されていなければ、その特殊ファイルの /dev における名前を表示します。 /dev になかったり、 -n が指定されていたりする と、スペシャルデバイスが参照するメジャー番号、マイナー番号を表示します。

R/W このフィールドには、ファイルのアクセス属性が表示されます。 ``r'' の場合は、ファイルが読み込みのためにオープンされていることを意味します。 ``w'' の場合は、ファイルが書き込みのためにオープンされていることを意味します。 このフィールドは、ファイルシステムを読み込み専用状態に移行する際に、 それを妨げているプロセスを見つける場合に役に立ちます。

NAME
    filename が指定されていて、 -f が指定されていなければ、この フィールドが表示され、指定されたファイルに関連する名前が表示されます。 普通、この名前は決まったものではありません。というのも、オープンされた ファイルから、ディレクトリ中のエントリへの逆のマッピングは存在しない からです。また、異なるディレクトリエントリが同じファイルを参照してい ることもある ( ln(2) を参照) ため、表示されている名前 は、プロセスがオープンした元のファイルの実際の名前と 異なっているかもしれません。

ソケット
オープンしているファイルのフォーマットは、プロトコルのドメインに依存します。 最初のフィールドはドメイン名で、2 番目のフィールドは ソケットの型 (stream や dgramなど)、3 番目はソケットフラグのフィールド (16 進数) です。残りのフィールドはプロトコルに依存します。tcp の場合は、 tcpcb のアドレスですし、udp の場合は inpcb (ソケット pcb) のアドレスです。 UNIX ドメインソケットの場合はソケット pcb のアドレスと (もし接続すれば) 接続先 pcb のアドレスです。それ以外の場合はプロトコル番号とソケット自身 のアドレスが表示されます。 netstat(1) と重複しない範囲で、詳しく分析するのに十分な情報を表示しようとします。

たとえば、上で述べたアドレスは “netstat -A” コマンドで表示される tcp, udp, UNIX ドメインのそれぞれのアドレスです。ただし、パイプはソケットを用いて 実装されているので、パイプは接続先の UNIX ドメインストリームソケットとして 現れることに注意してください。単方向 UNIX ドメインソケットは、向き を持った矢印 (``<-'' か ``->'') として表示され、双方向 (全二重) UNIX ドメイン は二重矢印 (``<->'') として表示されます。

バグ
fstat はシステムのスナップショットをとるので、表示される情報は ほんのわずかな間しか正しくありません。

関連項目
netstat(1), nfsstat(1), ps(1), sockstat(1), systat(1), tcp(4), unix(4), iostat(8), pstat(8), vmstat(8)

歴史
fstat コマンドは 4.3BSD tahoe から登場しました。