我假设有一个文件填充数据。
如果我以"r+"
模式和seek
打开此文件到任何非EOF位置
和write
这个文件的一个或多个字符,将是什么
标准结果?
是否会覆盖或移动以下字符?
如果需要一个例子,这可能就是这样一个文件:
档案a.tx
:
abcdefghijklmnopqrstuvwxyz
C code snippet:
FILE * f = fopen("a.tx", "r+");
fseek(f, 5, SEEK_SET);
char * str = "12";
fwrite(str, 1, 2, f); // this is just an example
答案 0 :(得分:0)
这是一个非常非常基本的I / O行为......与POSIX,GNU或DOS / Windows无关,它只是标准的C。
它只会在第5位写入12
(从0开始计数),因此将12
写在fg
上。请注意,这可能无法在文件中立即显示,因为写入可能会被缓冲;如果你刚刚关闭或刷新文件,那么数据肯定会被写入物理目的地。
操作系统中通常没有移位(您的意思是插入权利?),而您可以将其视为基本功能,将某些内容插入文件需要将太多操作视为一个基本的OS功能。