1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言结构体写入dat文件中 .dat在C中的结构化文件处理(手册?)

c语言结构体写入dat文件中 .dat在C中的结构化文件处理(手册?)

时间:2023-05-07 16:27:20

相关推荐

c语言结构体写入dat文件中 .dat在C中的结构化文件处理(手册?)

假设你的数据项由一个固定大小的一个C结构基本Typedef的是这样的描述:

typedef struct

{

... // fill in the missing details

} MyDataItem;

并且您的数据文件包含这些MyDataItem的...

使用fopen(FileName, "wb")创建一个空文件用于写MyDataItem的目的(如果在这个调用之前有这个名字的文件,它将被覆盖并且它的所有数据都将丢失)。

使用fopen(FileName, "rb")打开现有文件以便只读。

使用fopen(FileName, "rb+")打开现有的文件进行读取或写入/更新。

使用fopen(FileName, "wb+")创建一个新的文件用于写入/更新或读取(如果在此调用之前有这个名称的文件将被覆盖,并且所有数据都将丢失)。

使用fopen(FileName, "ab")可以打开现有文件或创建一个新文件以在其末尾附加数据。

使用fopen(FileName, "ab+")打开现有文件或创建一个新文件,用于在其末尾附加数据并读取/写入/更新数据。

使用fclose(FileStreamPointer)可以在完成使用之后关闭先前打开的文件。

使用fseek(FileStreamPointer, StructureIndex*sizeof(MyDataItem), SEEK_SET)准备在现有的和打开的文件中读取或(over)写入StructureIndex'th MyDataItem。这将设置当前文件的位置以进行读取/写入。请注意,fread()和fwrite()是从文件读写数据的函数,将当前位置提前读取/写入的数据量。使用fread(PointerToMyDataItemStructure, 1, sizeof(MyDataItem), FileStreamPointer)来读取MyDataItem。使用fwrite(PointerToMyDataItemStructure, 1, sizeof(MyDataItem), FileStreamPointer)写一个MyDataItem。

使用fstat()或stat()找出文件的大小。这些在C中不是标准的,它们是扩展(POSIX或其他)。

通过调用ftruncate(),truncate()和类似的函数可以实现在文件的最后删除MyDataItem,但它们在C中不是标准的,它们是扩展名(POSIX或其他)。

没有标准/通用的功能来删除文件的一部分在其开始或中间的某个地方。您必须创建一个新文件并将其中的数据复制/写入到您希望保留的数据中(然后删除旧文件并可能重命名新文件),或者从您想要的部分之后复制文件中的数据用fread()和fwrite()在这个被删除的部分删除然后截断该文件。

使用remove()删除文件。使用rename()重命名文件。

使用tmpnam() + fopen()或tmpfile()创建临时文件。

您的操作系统可能会为文件I/O提供其他有用的功能。

有关详细信息,请参阅文档。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。