Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何为自己的文件格式创建标题?_C_File Format - Fatal编程技术网

C 如何为自己的文件格式创建标题?

C 如何为自己的文件格式创建标题?,c,file-format,C,File Format,如何在C中创建文件头,以便在读取头时可以检测文件类型 正确的方法是什么?有什么标准可以遵循吗 我想在文件中添加一个小标题,以便在读取标题时可以检测到文件类型 更新(如果您没有帽子): 我想使用c为我自己的文件格式(不是.c或.h文件)添加一个头,我将使用c读取文件、识别文件并对其进行处理。您可以在文件开头编写一些自定义数据,就像存储任何其他数据一样 例如,指定在第一行中存储有图片的尺寸和最大值: P2 # Shows the word "FEEP" (example from Netpbm ma

如何在C中创建文件头,以便在读取头时可以检测文件类型

正确的方法是什么?有什么标准可以遵循吗

我想在文件中添加一个小标题,以便在读取标题时可以检测到文件类型

更新(如果您没有帽子):


我想使用c为我自己的文件格式(不是.c或.h文件)添加一个头,我将使用c读取文件、识别文件并对其进行处理。

您可以在文件开头编写一些自定义数据,就像存储任何其他数据一样

例如,指定在第一行中存储有图片的尺寸和最大值:

P2
# Shows the word "FEEP" (example from Netpbm main page on PGM)
24 7
15
... picture data continues from here
没有任何标准会规定制作这种标题,因为很少有人会这样做。在PGM图片的情况下,如果没有此标题,您将不知道图片的尺寸-您将读取12个字节,但您不知道它是图片3x4还是6x2


请注意,这种自定义数据是读取文件时必须在文件开头存储的数据。您可以为您的文件创建自定义标题,但要确保将要使用您的文件的人知道它。

您只需在文件开头写入一些自定义数据,就像存储任何其他数据一样

例如,指定在第一行中存储有图片的尺寸和最大值:

P2
# Shows the word "FEEP" (example from Netpbm main page on PGM)
24 7
15
... picture data continues from here
没有任何标准会规定制作这种标题,因为很少有人会这样做。在PGM图片的情况下,如果没有此标题,您将不知道图片的尺寸-您将读取12个字节,但您不知道它是图片3x4还是6x2


请注意,这种自定义数据是读取文件时必须在文件开头存储的数据。您可以为您的文件创建自定义标题,但要确保使用您的文件的人知道它。

许多文件格式从一个小的ASCII码或可识别的数字开始,以便在编辑器或十六进制编辑器打开时可以识别它。这些有时也被称为“幻数”,或“文件签名”。例如:

  • GIF文件的前四个字节是
    GIF
    ,后面是三个字母的版本(
    87a
    89a

  • zip文件的前两个字节是
    PK
    (原始zip文件作者的首字母缩写)

  • 苹果二进制plist文件格式的前六个字节是
    bplist

  • 这里有一个全面的清单。接下来通常是关于文件包含内容的信息,如目录,然后是实际数据

    编辑 听起来你想要的是一个可变长度的标题。可变长度标题通常以标题中的项目数开始,因此,例如,如果文件中有5个项目,则标题可能如下所示:

    HELIUM3
    5
    Item1 INDEX
    Item2 INDEX
    Item3 INDEX
    Item4 INDEX
    Item5 INDEX
    
    < then all the data after that >
    
    HELIUM3
    5.
    项目1索引
    项目2索引
    项目3索引
    项目4索引
    项目5索引
    <然后是之后的所有数据>
    
    许多文件格式以一个小的ASCII码或可识别的数字开始,以便在编辑器或十六进制编辑器打开时可以识别。这些有时也被称为“幻数”,或“文件签名”。例如:

  • GIF文件的前四个字节是
    GIF
    ,后面是三个字母的版本(
    87a
    89a

  • zip文件的前两个字节是
    PK
    (原始zip文件作者的首字母缩写)

  • 苹果二进制plist文件格式的前六个字节是
    bplist

  • 这里有一个全面的清单。接下来通常是关于文件包含内容的信息,如目录,然后是实际数据

    编辑 听起来你想要的是一个可变长度的标题。可变长度标题通常以标题中的项目数开始,因此,例如,如果文件中有5个项目,则标题可能如下所示:

    HELIUM3
    5
    Item1 INDEX
    Item2 INDEX
    Item3 INDEX
    Item4 INDEX
    Item5 INDEX
    
    < then all the data after that >
    
    HELIUM3
    5.
    项目1索引
    项目2索引
    项目3索引
    项目4索引
    项目5索引
    <然后是之后的所有数据>
    
    嗯?什么“文件类型”?你是说“这是一个文本文件”?我现在明白了!他在问如何使用C来创建具有特殊标题的文件。这意味着。。。太宽泛/不是问题/没有建设性。这是为您的本地文件系统设计的吗?那是MacOS,对吗?在其他文件系统上,文件类型通常由文件扩展名决定。没有关于文件头必须是什么样子的规则。@MrLister-你不同意什么?一个没有代码也没有任何研究成果迹象的模糊问题不应该被关闭?我不是说他想做什么,嗯?什么“文件类型”?你是说“这是一个文本文件”?我现在明白了!他在问如何使用C来创建具有特殊标题的文件。这意味着。。。太宽泛/不是问题/没有建设性。这是为您的本地文件系统设计的吗?那是MacOS,对吗?在其他文件系统上,文件类型通常由文件扩展名决定。没有关于文件头必须是什么样子的规则。@MrLister-你不同意什么?一个没有代码也没有任何研究成果迹象的模糊问题不应该被关闭?我不是在说他想做什么。谢谢,你似乎是唯一一个理解我这个问题的人。我知道可以自由地为标题编写任何我想要的内容,我想知道是否有任何标准的方法可以这样做。没有为文件制作标题的标准,因为这个标题与您文件中的任何其他数据都没有区别。谢谢,您似乎是唯一理解我不清楚的问题的人。我知道