指定されたファイルの更新が一定時間以内なら、文字列を出力します。
motchie.comで日記をつけはじめると、訪れた方はまず日記をクリックして、そのまま去って行かれる方が多いので、日記以外のコンテンツが更新された場合、1日間は"NEW!"とでも表示しておこうと思ったのがきっかけです。それ以上の機能はありません。
ぼくはCのプログラムを組んだ経験はほとんどないので、とっても稚拙なプログラムになっています。叱咤激励、その他ご意見をお待ちしています。
これを使ってみようとおっしゃる方。感謝感激です。お役に立ててとても嬉しいです。このプログラムは、Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86、つまりMicrosoft Visual C++ 6.0のコンパイラと、FreeBSD 3.3-RELEASE上のGNU project C and C++ Compiler (v2.7)で動作を確認しています。見てお分かりいただける通り、FILENAMEマクロを更新をチェックしたいファイルへのパスに、さらに更新からどれだけの間NEWと表示し続けるかを、秒単位で指定する必要があります。それは、NEWと表示している部分のすぐ真上のif文を調整していただければ結構です。
Webサイトで用いる場合は、SSIなどを用いてページに埋め込んでください。
わざわざ圧縮するまでもないので、以下にソースを示します:
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#define FILENAME "/path/to/your/file"
int main( ) {
struct _stat buf;
int result;
time_t ltime, atime;
double elapsed_time;
#ifdef _WIN32
result = _stat( FILENAME, &buf );
#else
result = stat( FILENAME, &buf );
#endif
if( result ) {
atime = buf.st_mtime;
time( <ime );
elapsed_time = difftime( ltime, atime );
if( elapsed_time <= 86400 ) {
printf( "NEW!!" );
}
}
return 0;
}