2011-12-15 48 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系統。