以fprintf为例:
在使用 `fprintf` 函数写入数据时,文件指针 `fp` 会自动进行偏移,以确保数据被写入到文件的正确位置。
每次调用 `fprintf` 函数都会将数据写入文件,并且文件指针会在写入完成后自动移动到写入的末尾,以便下一次写入操作。因此,文件指针 `fp` 在使用 `fprintf` 函数后会发生偏移,指向已写入数据的末尾位置。
例子:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main()
{
FILE *fp=fopen("log.txt","w");
if(fp==NULL)
{
perror("fopen");
return 1;
}
//文件操作
const char* s1="hello fwrite";
fwrite(s1,strlen(s1),1,fp);
const char* s2="hello fprintf";
fprintf(fp,"%s",s2);
const char* s3="hello fputs";
fputs(s3,fp);
fclose(fp);
return 0;
}
运行结果:
可见,每一次写入接口执行后,文件指针都偏移到了数据末尾,下一个接口就在末尾写入。