让我们首先假设我有一个由5个整数组成的20字节二进制文件。现在让我们假设我试图:
fseek(fp, 2*sizeof(int), SEEK_END)我试着给他打电话:
fwrite(&i, sizeof(int), 1, fp);这有可能吗?
如果可能,新的二进制文件的大小是32,还是仅仅是24?如果是32,那么从位置20到27的二进制文件的内容是什么?
发布于 2020-04-29 04:20:11
根据this的说法
SEEK_END (因此,使用它的代码没有真正的标准和here
POSIX允许在现有的文件结尾之外进行查找。如果在此寻道之后执行输出,则从间隙读取的任何数据都将返回零字节。在文件系统支持的情况下,这将创建一个稀疏文件。
在我的测试系统seeking上,过去的SEEK_END用空字节填充文件的其余部分,直到新的文件指针。
https://stackoverflow.com/questions/61489134
复制相似问题