ページ 11

ディレクトリorファイルの判別方法 //linux gcc

Posted: 2008年10月16日(木) 16:23
by Haru
こんにちわ、Haruです。
ディレクトリの判別方法なのですが、一応今の時点で判別は出来ています。しかし、方法が次のように
if((dir = opendir(str)) == NULL)
{
  printf("ファイル新規作成処理\n");
    fp = fopen(file,"w");
}
else
{
	 // ディレクトリを作る処理&配下ファイルをコピー
}
diropenを試し、開けばディレクトリ、開かなければファイルという方法で判別してるのですが、もっとスマートな方法はありますか?

Re:ディレクトリorファイルの判別方法 //linux gcc

Posted: 2008年10月16日(木) 16:43
by Mist
stat関数について調べてみてください。
statで取得した情報からファイルかディレクトリかを判別するマクロもあった(と思う)。

Re:ディレクトリorファイルの判別方法 //linux gcc

Posted: 2008年10月16日(木) 17:03
by Haru
>Mistさん
ありがとうございます!!
早速調べてみます!!

Re:ディレクトリorファイルの判別方法 //linux gcc

Posted: 2008年10月17日(金) 10:11
by Haru
もう1つ質問します!
mkdirを使用して、ディレクトリの作成をしようと考えていたのですが、
mkdir(sorce,st.st_mode & 0777);
コンパイルは通るのですが、ディレクトリを作成せずに終了してしまいます。
少し、言葉足らずかもしれませんが、
宜しければご教授お願いします

Re:ディレクトリorファイルの判別方法 //linux gcc

Posted: 2008年10月17日(金) 10:15
by Mist
作成失敗してるだけじゃ(^^?
mkdirの戻り値とかerrno とかチェックしてます?

Re:ディレクトリorファイルの判別方法 //linux gcc

Posted: 2008年10月17日(金) 10:37
by Haru
>作成失敗してるだけじゃ(^^?
>mkdirの戻り値とかerrno とかチェックしてます?

戻り値は-1でした!
それと恥ずかしながらerrnoは今初めて知りました(汗
前から見かけた事はあるんですが、何につかうのかなぁ?(^^;って感じでした。
とりあえず
作成失敗してるだけなら、頑張ってみます!!

#Mistさんや、他の方々のさりげない、当然のような一言がとても勉強になります!