我想知道如何在所有操作系统中应用file stat(struct stat)
。
例如,我在Windows操作系统中以struct stat
的形式获得了文件的文件统计信息。我将该文件复制到Linux操作系统。但现在,我需要将file stat
应用于Linux操作系统。是否有任何方法可以将此用于所有操作系统?在将Windows stat应用到Linux OS之前,是否需要将其转换为其他格式?
文件统计,意思是指上次修改时间,文件创建时间和访问时间等。
答案 0 :(得分:2)
您是否希望两个系统上的文件具有相同的创建时间戳,修改后的时间戳等?
可以为几乎所有操作系统设置一些元数据,如时间戳。其他领域无法转让,或需要特殊处理。这些包括文件的权限(读写 - 执行)和用户/组。
要更改Linux系统上的时间戳,如果要通过命令行执行此操作,请参阅命令touch
,如果要在自己的程序中执行此操作,请参阅函数utime
。
编辑:在您清除评论后,您应该知道Windows和Linux上的stat
结构不一样! Linux stat
结构中有更多字段,顺序可能也不一样。如果要在系统之间传输此数据,最好的办法是创建自己的结构,包含所需的确切数据,并在每个操作系统上具有从/到本机stat
结构转换的功能。
答案 1 :(得分:0)
你的问题不清楚。 stat
是一个POSIX调用,接受struct stat *
并将其填入。您无法将填充的结构复制到另一个POSIX系统,并期望格式相同,但您当然可以调用stat
在另一个POSIX系统下的文件副本上。