C++ 跨所有操作系统应用文件Stat(Stat的struct类型)

C++ 跨所有操作系统应用文件Stat(Stat的struct类型),c++,c,windows,linux,C++,C,Windows,Linux,我想知道如何在所有操作系统中应用file stat(struct stat) 例如,我在Windows操作系统中有一个文件stat,格式为struct stat。我将该文件复制到Linux操作系统。但是现在,我需要将文件stat应用于Linux操作系统。是否有任何方法可用于所有操作系统?在将windows stat应用于Linux操作系统之前,是否需要将其转换为其他格式 File Stat,即上次修改时间、文件创建时间和访问时间等。您的意思是希望两个系统上的文件具有相同的创建时间戳、修改时间戳等

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

例如,我在Windows操作系统中有一个文件stat,格式为
struct stat
。我将该文件复制到Linux操作系统。但是现在,我需要将
文件stat
应用于Linux操作系统。是否有任何方法可用于所有操作系统?在将windows stat应用于Linux操作系统之前,是否需要将其转换为其他格式


File Stat,即上次修改时间、文件创建时间和访问时间等。

您的意思是希望两个系统上的文件具有相同的创建时间戳、修改时间戳等吗

几乎所有操作系统都可以设置一些元数据,如时间戳。其他字段不能传输,或需要特殊处理。这些包括文件的权限(读写执行)和用户/组

要在Linux系统上更改时间戳,请参阅命令(如果要通过命令行执行),以及函数(如果要在自己的程序中执行)


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

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

谢谢您提供的信息。是的,我希望通过编程使时间戳细节(创建、修改和访问时间)与Windows中源文件的时间戳细节相同。我想知道zip和其他程序是如何在各种操作系统上保持这些时间戳细节完好无损的。简而言之,我的程序,我只是在文件末尾添加stat细节(在Windows操作系统中)并将其发送到另一台机器(在我的例子中是Linux操作系统)。在Linux操作系统中收到该文件后,我需要检索这些stat详细信息,并将其应用到Linux操作系统中的文件。我希望在将windows操作系统构建的stat应用到Linux操作系统中的文件之前,需要进行一些处理。你能告诉我这个需要做的转换吗?@Prabu在你的评论后更新了我的答案。谢谢。我将尝试通过创建自己的结构以及将结构(Windows或Linux)转换为我的格式的函数来检查这一点,然后再次转换为目标操作系统所需的格式。谢谢你的帮助。我想知道zip实用程序是如何在不考虑操作系统的情况下保持文件统计信息的完整性的。例如,如果我在Linux机器上获取一个文件的zip,然后将其复制到Windows机器上。在Windows操作系统中解压后,我可以得到相同的时间戳详细信息。不确定它们是如何在内部实现的。我想要一个类似的东西。