ファイルアクセス時間を変更せずにファイル変更時間を変更できますか?
ベストアンサー1
私は方法を見つけた。私はstat (GNU coreutils) 8.19
ファイルの「アクセス」、「修正」、および「変更」タイムスタンプを表示するためにGNU stat()を使用します。
chmod u+x
ファイル内の「変更された」時間を更新できます。 「変更済み」および「アクセス済み」タイムスタンプは変更されていません。
cat
「Access」ファイルを実行して更新できます。 「変更された」および「変更された」タイムスタンプは変更されていません。
open(filename, O_WRONLY);
私はファイルディスクリプタにシングルバイトを書き、次にclose(filedes);
結果ファイルディスクリプタに書き込む小さなCプログラムを書いています。stat
テーマファイルの「アクセス」タイムスタンプは変更されていませんが、「変更」および「変更」タイムスタンプは更新されたことを示しています。
これはすべて、Ext4ファイルシステムの最近更新されたArch LinuxノートブックLinux 3.5.4で発生します。
小さなCプログラム:
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int
main(int ac, char **av)
{
int fd = open(av[1], O_WRONLY);
if (fd >= 0)
{
char buf[12];
write(fd, buf, 1);
if (close(fd) < 0)
fprintf(stderr, "Problem closing file: %s\n",
strerror(errno));
} else {
fprintf(stderr, "Problem opening \"%s\": %s\n",
av[1], strerror(errno));
}
return 0;
}