無題

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

無題

#1

投稿記事 by Haru » 16年前

度々すみません。Haruです。ファイルの更新日時を取得したいのですが、調べた結果完全に環境に依存するということはわかったのですが、「linux gcc」の環境でファイルの更新日時を取得できる、関数はありますか?

Mist

Re:無題

#2

投稿記事 by Mist » 16年前

statのst_mtimeじゃだめなの?

Haru

Re:無題

#3

投稿記事 by Haru » 16年前

>statのst_mtimeじゃだめなの?

かなり、これで良いっぽいですm(__)m
いつもありがとうございます!!

Haru

Re:無題

#4

投稿記事 by Haru » 16年前

ファイルの更新日を取得する関数を、教えていただき、どちらのファイルが新しいかを判別する。という事は
stat(変数A,&st); stat(変数B,&st2);
if((st.st_mtime) >(st2.st_mtime))
のようにして出来るようになったのですが、
今度は先月か(または先々月)どうかを、判別する事をしたいのですが
、何か良い方法はあるでしょうか?(ツール起動時においての先月かどうか、という意味です)

#前々回に教えて頂いた、ファイル、ディレクトリの判別は
switch(buf.st_mode & S_IFMT)
{
case S_IFREG:

 case S_IFDIR:
}
Mistさんに教えて頂いたとおりstatの、
このマクロで解決できました!!

Mist

Re:無題

#5

投稿記事 by Mist » 16年前

> 今度は先月か(または先々月)どうかを、判別する事をしたいのですが
判別する対象か明確じゃないですが、最終更新日時がというのであれば
st_mtimeにどんな値が入っているのかを理解していれば、特に難しくはないと思いますが。

ヒント
UNIXタイム

Mist

Re:無題

#6

投稿記事 by Mist » 16年前

> このマクロで解決できました!!
む、思ってたのとちょっと違うな(^^;
一応サンプル。
if ( S_ISREG(buf.st_mode) {
        printf("普通のファイルです。\n");
    } else if ( S_ISDIR(buf.st_mode) {
        printf("ディレクトリです。\n");
    } else {
        printf("ファイルでもディレクトリでもありません。\n");
    }

toyo

Re:無題

#7

投稿記事 by toyo » 16年前

9/30に更新したものを10/1に開いても先月と判定するということでしょうか
それならlocaltime( )関数でtime_t時間をtm構造体に変換してtm_monメンバー変数を比較すればいいでしょう

Haru

Re:無題

#8

投稿記事 by Haru » 16年前

>む、思ってたのとちょっと違うな(^^;
>一応サンプル。

ありがとうございます。
こっちの方がスッキリしてるので、こちらを使わせてもらうことにしました。


>判別する対象か明確じゃないですが、最終更新日時がというのであれば
>st_mtimeにどんな値が入っているのかを理解していれば、特に難しくはないと思いますが。

これを調べている間にtoyoさんのアドバイスに行き着いてしまいました(^^;
でも、これはこれで覚えておいて損はなさそうなので調べてみます!!

>9/30に更新したものを10/1に開いても先月と判定するということでしょうか

やっぱり、ここは気になりますよね(^^;
まぁ、ここまで、出来たならもし、30日後だというのであれば、
すぐそれに直せますから、さほど気にしなくても大丈夫ですかね!笑

>それならlocaltime( )関数でtime_t時間をtm構造体に変換してtm_monメンバー変数を比較すればいいでしょう

このようになりました!!

time(&buf.st_atime);
time(&timer);
nowmon = localtime(&timer); //システム起動時月
newmon = localtime(&buf.st_atime); //ファイル更新月
if(newmon->tm_mon+1 == nowmon->tm_mon)

Haru

Re:無題

#9

投稿記事 by Haru » 16年前

間違ってenter押したら投稿されてしまった(^^;

Mistさんtoyoさん
ありがとうございました!!

閉鎖

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