今日の一言
2010/10/29(Fri) この日記にリンク元を見る機能があったことに今気づいた [長年日記] 14:00現在曇 18℃
_ [C++][Debian][FC][Ubuntu][Linux][研究関係][雑記] C言語(C++)でディレクトリ内に、ある名前を持ったファイルが存在するかを確認する(stat編)
前(http://robotics.naist.jp/~akihiro-i/dialy/?date=20100606#p03)は「opendir」を使ってファイルの有無を確認していたが、「stat」を使った方が簡単に出来るようだ。
こんな感じで書けばOK?
#include <sys/types.h> #include <sys/stat.h> #include <time.h> #include <stdio.h> #include <stdlib.h> int check_exist(char* target) { struct stat sb; if (stat(target, &sb) == -1) return 1; else return 0; } int main(int argc, char **argv) { char* target = argv[1]; if (argc != 2) { fprintf(stderr, "Usage: %s <targetname>\n", argv[0]); exit(EXIT_FAILURE); } if(check_exist(target) != 0) { perror("stat"); exit(EXIT_SUCCESS); } else { printf("\"%s\" is found\n",target); exit(EXIT_SUCCESS); } }
statの詳しい使い方は、ここ(http://archive.linux.or.jp/JM/html/LDP_man-pages/man2/stat.2.html)を見れば分かるはず。
[TrackBack URL: http://akihiro-i.net/~akihiro-i/diary/tb.rb/20101029]