在所有操作系统中应用File Stat(struct type of stat)

时间:2011-12-15 09:37:47

标签: c++ c windows linux

我想知道如何在所有操作系统中应用file stat(struct stat)

例如,我在Windows操作系统中以struct stat的形式获得了文件的文件统计信息。我将该文件复制到Linux操作系统。但现在,我需要将file stat应用于Linux操作系统。是否有任何方法可以将此用于所有操作系统?在将Windows stat应用到Linux OS之前,是否需要将其转换为其他格式?

文件统计,意思是指上次修改时间,文件创建时间和访问时间等。

2 个答案:

答案 0 :(得分:2)

您是否希望两个系统上的文件具有相同的创建时间戳,修改后的时间戳等?

可以为几乎所有操作系统设置一些元数据,如时间戳。其他领域无法转让,或需要特殊处理。这些包括文件的权限(读写 - 执行)和用户/组。

要更改Linux系统上的时间戳,如果要通过命令行执行此操作,请参阅命令touch,如果要在自己的程序中执行此操作,请参阅函数utime

编辑:在您清除评论后,您应该知道Windows和Linux上的stat结构不一样! Linux stat结构中有更多字段,顺序可能也不一样。如果要在系统之间传输此数据,最好的办法是创建自己的结构,包含所需的确切数据,并在每个操作系统上具有从/到本机stat结构转换的功能。

答案 1 :(得分:0)

你的问题不清楚。 stat是一个POSIX调用,接受struct stat *并将其填入。您无法将填充的结构复制到另一个POSIX系统,并期望格式相同,但您当然可以调用stat在另一个POSIX系统下的文件副本上。