このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1260532772/216
#  [1] 授業単元: オペレーティングシステム 
#  [2] 問題文(含コード&リンク):  

#   1. 引数にファイル名を指定すると,そのファイルのサイズとファイルの種類(一般ファイル,デ 
#     ィレクトリ,パイプ等),そして最終変更時刻を表示するコマンド(fview という名称とする)を作 
#     成せよ.ただし,引数には,複数のファイルを指定できるようにすること.また,fstat システム 
#     コールを用いること. 
#   
#     実行 
#     $ fview aaa.txt bbb.txt ccc.txt … 
#     ヒント 
#     ファイルの種類は,fstat 構造体メンバのst_mode の上位4 ビットで表わされる. 
#   
program :-
  user_parameters(_パス名ならび),
  write('パス名,サイズ,種類,最終変更時刻\n'),
  ファイル情報を表示する(_パス名ならび),
  halt.

ファイル情報を表示する([]) :- !.
ファイル情報を表示する([_パス名|R]) :-
  ファイル情報を得る(_パス名,_サイズ,_種類,_最終変更時刻),
  write_formatted('%t,%t,%t,%t,%t\n',[_パス名,_サイズ,_種類,_最終変更時刻]),
  ファイル情報を表示する(R).

ファイル情報を得る(_パス名,_サイズ,_種類,_最終変更時刻) :-
  get_file_info(_パス名,[dev(Dev),ino(Ino),mode(Modes),nlink(Nlink),uid(Uid),uname(Uname),gid(Gid),gname(Gname),size(_サイズ),atime(Atime),mtime(Mtime),ctime(_最終変更時刻),blksize(Blksize),blocks(Blocks)]),
  member(FI,Modes),
  sub_atom(FI,0,2,_,if),
  ファイル種類(FI,_種類).

ファイル種類(ifblk,ブロックファイル).
ファイル種類(ifchr,キャラクタファイル).
ファイル種類(ififo,パイプ).
ファイル種類(ifreg,一般ファイル).
ファイル種類(ifdir,ディレクトリ).
ファイル種類(iflnk,シンボリックリンク).