我读了一篇关于新隐写方法的文章:“时间就在我身边:文件系统元数据中的隐写术”http://www.sciencedirect.com/science/article/pii/S1742287616300433。这非常有趣,让我思考一件事。
是否可以使用C或Linux OS中的任何其他语言操作文件修改/访问/更改时间metedata? 我找到了使用 touch 命令的方法,但它创建了具有特定标记值的文件。我想找到修改现有元数据的方法。
答案 0 :(得分:2)
我遇到了这个帖子,我不得不分享我的发现(如上所述,这个网站是知识库):
“触摸”是一个命令行应用程序,为了执行它(来自c ++应用程序),您需要运行气馁的system()。 更多关于触摸:http://www.linfo.org/touch.html
以编程方式设置文件的访问和修改时间戳是使用以下系统调用之一: utime,utimes,futimes,futimens (简单的互联网搜索会给你他们的手册页) 即http://www.tin.org/bin/man.cgi?section=2&topic=utimensat
Linux有3个与文件关联的时间戳:
使用上述命令修改“访问”和“修改”时间戳相对容易,但修改更改时间戳(上次更改权限)更难。这里的线程: Setting creation or change timestamps
答案 1 :(得分:0)
使用触摸命令可以编辑文件的时间元数据。例如:
touch -a -t 201611161200.10 file.txt
这将导致修改访问时间戳,并将其替换为日期2016-11-16 12:00:10.000000000 要更改'修改'日期你应该使用标志 -m