假设你的数据项由一个固定大小的一个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提供其他有用的功能。
有关详细信息,请参阅文档。