2011-12-15 51 views
0

我想知道如何在所有操作系统上应用file stat(struct stat)跨所有操作系统应用文件统计(结构类型统计)

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

文件属性的,最后修改时间,文件创建时间和访问时等

回答

2

你的意思是你想在两个系统中的文件具有相同的创建时间戳,修改的时间戳,等等?

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

要更改Linux系统上的时间戳,请参阅命令touch(如果您想通过命令行执行此操作)以及功能utime(如果您想在自己的程序中执行此操作)。

编辑:当你清理了你的评论后,你应该知道在Windows和Linux上的stat结构是不一样的! Linux stat结构中有更多字段,顺序可能也不尽相同。如果您想在系统之间传输这些数据,最好的办法是创建您自己的结构,包含您需要的确切数据,并且在每个操作系统上都具有从本地结构翻译到本地结构的功能。

+0

感谢您的信息。是的,我希望通过编程获得与Windows源文件相同的时间戳记详细信息(创建,修改和访问时间)。我想知道zip和其他程序如何在各种操作系统上保留这些时间戳记的细节。 – Prabu 2011-12-15 09:52:11

+0

简而言之,我只是在文件末尾(在Windows操作系统中)添加统计信息并将其发送到另一台机器(Linux操作系统)。在Linux操作系统中收到文件后,我需要检索这些统计信息并将其应用于Linux操作系统中的文件。我希望在将由windows操作系统构建的统计信息应用到Linux操作系统中的文件之前,我需要做一些处理。你能告诉我为此需要完成的转换吗? – Prabu 2011-12-15 09:58:43

0

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