我正在实现日志机制,并且想在达到定义的大小时根据在目录中创建的时间删除最旧的日志文件。
但是现在我坚持要根据创建时间来获取最早的文件。如何使用C获得它?
没有一种可移植的方法来获取C中文件的创建时间(或其修改时间)。
取而代之的是,您需要依赖于某些不严格可移植的东西-例如,使用目录条目中的文件名和stat()POSIX定义的功能,以获取可能包含或不包含struct timespec st_ctim;字段的结构。
当然,某些文件系统根本没有创建时间。即使您将文件复制到其他地方(例如,复制到远程存储),即使创建一个文件,创建时间也将消失,因此相对不可靠。
代替; 最好将创建时间和日期添加到文件名中。如果您以正确的顺序执行此操作(“年,月,日,时,分,秒”-例如,可能类似于“ mylog_2019-10-31_14-23-45.txt”),并保持前导零(例如09,代表月份而从9不代表月份),则按字母数字顺序对文件名列表进行排序也将按时间顺序对它们进行排序。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。