2012-07-24 240 views
2

我正在嘗試編輯文件的文件頭。但是,如果我從文件(NSData)中獲取字節,我無法看到或知道標頭開始和有效負載開始的位置。所以當我想添加簽名或其他東西時,這是不可能的。讀取/寫入文件頭

有人可以點我在正確的方向?

iOS中的文件頭是什麼樣的?我找不到統一的標題格式,這使得閱讀變得更加困難。

總結: 我想知道標題的開頭和結尾。 我想編輯這個標題。 我想知道fileheader的結構。

回答

1

iOS中的文件頭看起來像任何其他操作系統中的文件頭。它可以是你想要的任何東西,並且可以隨心所欲地長或短。如果你希望它是可變長度的,那麼一種方法是用幻數(它實際上是一個四字母的UTF-8字符串,意味着重要的東西)開始它,然後可能是一個32位頭長,編碼在小端(因爲iOS和OSX是小端),然後無論你需要編碼。

有關什麼文件頭當前存在的示例,請查看file命令並查看/usr/share/file/magic/中的文件。它通常使用文件頭來確定文件的類型。

+0

謝謝,但有沒有辦法檢索標題?我如何知道我擁有整個標題? – stackr 2012-07-24 07:11:36

+0

@stackr:這取決於 - 頭文件通常只是文件的第一部分,所以你必須知道文件格式(有時它只是包含關於文件的一些基本信息的固定數量的字節,有時一個頭字段包含其長度(或等效信息),如[位圖](http://en.wikipedia.org/wiki/BMP_file_format),或有一個特殊的字節序列標記有效負載的開始。 – 2012-07-24 07:25:49