stat関数 - ファイルの詳細な情報を取得する



  1. Perl




  2. 関数



  3. here

ファイルの詳細な情報を取得するにはstat関数を使用します。

my @infos = stat $file;

以下がstatで取得できる情報です。

0 ファイルシステムのデバイス番号
1 iノード番号
2 ファイルモード
3 このファイルへのハードリンク数
4 ファイルの所有者のユーザID( 数字 )
5 ファイルの所有者のグループID( 数字 )
6 バイス識別子
7 ファイルのサイズ( バイト )
8 最終アクセスしてからの経過したエポックからの秒数
9 最終更新してからの経過したエポックからの秒数
10 iノードが変更されてから経過したエポック時からの秒数
11 ファイルの読み書きに適切だと考えられるブロックサイズ
12 割り当てられている実際のブロック数

サンプル

stat関数を使ってファイルの詳細な情報を取得するサンプルです。

use strict;
use warnings;

# ファイルの詳細な情報を取得する stat

my $file = 'a.txt';
my @stat_inf = stat $file;

# statの解説の作成
my @stat_exp = ( 
  '0  dev      ファイルシステムのデバイス番号',
  '1  ino      iノード番号',
  '2  mode     ファイルモード',
  '3  nlink    このファイルへのハードリンク数',
  '4  uid      ファイルの所有者のユーザID( 数字 )',
  '5  gid      ファイルの所有者のグループID( 数字 )',
  '6  rdev     デバイス識別子',
  '7  size     ファイルのサイズ( バイト )',
  '8  atime    最終アクセスしてからの経過したエポック時からの秒数',
  '9  mtime    最終更新してからの経過したエポック時からの秒数',
  '10 ctime    iノードが変更されてから経過したエポック時からの秒数',
  '11 blksize  ファイルの読み書きに適切だと考えられるブロックサイズ',
  '12 blocks   割り当てられている実際のブロック数',
);

if (@stat_inf) {
  for my $i (0 .. 12) {
    # statの情報と解説を結びつけて、出力。
    printf("%-15s%s\n", $stat_inf[$i], $stat_exp[$i]);
  }                                              
}
else { print "stat $file は失敗しました。\n" }

簡単な補則



  1. Perl




  2. 関数



  3. here