開発環境
- OS X Lion - Apple(OS)
- Emacs、BBEdit - Bare Bones Software, Inc. (Text Editor)
- プログラミング言語: C
- Clang (コンパイラ)
プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)の第8章(UNIXシステム・8.6(例 - ディレクトリのリスティング)の演習8-5を解いてみる。
その他参考書籍
- プログラミング言語Cアンサー・ブック 第2版 (クロビス・L.トンド、スコット・E.ギンペル(著)、矢吹 道郎(翻訳))
演習 8-5.
コード
sample.c
int stat(char *, struct stat *); void dirwalk(char *, void (*fcn)(char *)); void fsize(char *name) { struct stat stbuf; if (stat(name, &stbuf) == -1) { fprintf(stderr, "fsize: can't access %s\n", name); return; } if ((stbuf.st_mod & S_IINFMT) == S_IINFMT) dirwalk(name, fsize); printf("%d %d %o %d %d %d %d %8ld %d %d %d %s\n", stbuf.st_dev, stbuf.st_inode, stbuf.st_mode, stbuf.st_nlink, stbuf.st_uid, stbuf.st_gid, stbuf.st_rdev, stbuf.st_size, stbuf.st_atime, stbuf.st_mtime, stbuf.st_ctime, name); }
とりあえずこんな感じかなぁ。printfでのフォーマットについては分からないのはとりあえず%dに。(%gの方がいいのかも。。)
0 コメント:
コメントを投稿