|
lstat |
lstat はシンボリックリンク自体の情報を取得する事ができます。
ファイルの情報を取得する stat関数もありますが、stat関数をシンボリックリンクに対して
実行すると、リンク先のファイル情報が返ってしまいますので、シンボリックリンク自身の
情報を取得する場合はこの lstat を利用しますが、こちらの lstat もファイルに対して実行
すると、ファイルの情報が返ります。
UNIXに実装されているシンボリックリンクはWindowsのショートカットと似たようなものですが、
ショートカットは、リンク先のファイルとショートカットが同じように扱えない事に比べ、シンボリック
リンクではリンク先のファイルとシンボリックリンクを同じもののように扱う事ができるものです。
シンボリックリンク自体はファイルやディレクトリへの情報を格納した0バイトのファイルです。
【書式】
$変数 = (lstat("シンボリックリンク"))[添字];
@配列 = lstat("シンボリックリンク");
stat関数で得られる最終更新日時も、現在の時刻を取得する の項で説明した time関数 のように
1970年1月1日0時0分0秒 から現在までの秒数が得られるようになっていますので、実際に表示
したりする際には、整形が必要となります。
stat関数で得られる情報は様々なものがあり、単一の情報が欲しい場合は書式にあるように添字
を指定して変数に入れ使用しますが、複数の情報を使いたい場合は、そのまま配列に入れてしまい
、後でその配列に添字を指定して使用する方法もあります。
下のサンプルソースでは、ファイルサイズと、最終更新日時、最終アクセス日時を表示します。
最終更新日時と、最終アクセス日時はサブルーチンを利用して変換を行ってみます。
複数の値を使いたい為、 lstat関数からの戻りを配列に入れていますが、単一の要素のみ取り出す
場合はstat取得時の書式を変え、戻りをスカラー変数に入れてもかまいません。
lstat関数呼び出し時の添字、もしくは取得したデータを配列に
入れた場合に得たいデータと指定する添字は以下の通りです。
0 |
デバイス番号 |
1 |
iノード番号 |
2 |
モード (タイプとパーミッションの値) |
3 |
対象ファイルのリンク数 |
4 |
対象ファイルの所有者ID |
5 |
対象ファイルのグループID |
6 |
デバイス識別子 |
7 |
ファイルのサイズ (単位はバイト) |
8 |
ファイルの最終アクセス日時 |
9 |
ファイルの最終更新日時 |
10 |
最終 iノード更新日時 |
11 |
ブロックサイズ |
12 |
ブロック数 |
|
|
|
|