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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Haru

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

#1

投稿記事 by Haru » 16年前

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

Mist

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

#2

投稿記事 by Mist » 16年前

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

Haru

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

#3

投稿記事 by Haru » 16年前

>Mistさん
ありがとうございます!!
早速調べてみます!!

Haru

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

#4

投稿記事 by Haru » 16年前

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

Mist

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

#5

投稿記事 by Mist » 16年前

作成失敗してるだけじゃ(^^?
mkdirの戻り値とかerrno とかチェックしてます?

Haru

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

#6

投稿記事 by Haru » 16年前

>作成失敗してるだけじゃ(^^?
>mkdirの戻り値とかerrno とかチェックしてます?

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る