fseek(fp1,0,SEEK_END);//fp1为已打开文件指针,偏移量为0,SEEK_END将文件指针指向文件尾n=ftell(fp1);//ftell返回文件指针fp1的当前位置,并赋值给nfseek(fp1,0,SEEK_SET);//SEEK_SET将文件指针指向文件头,偏移量为0fread(str,sizeof(char),n,fp1);//从文件流fp1中读取数据到指针str,...
我有一个函数,它应该返回正确的大小: unsigned long long getsize(FILE *fp){ unsigned long long prev=ftell(fp); fseek(fp,0,SEEK_END); unsigned long long size=ftell(fp); fseek(fp,prev,SEEK_SET); return size; } 但是当我在硬盘上使用它时,它会返回18446744073709551615或2^64-1. 它似乎并不总...
“起始点 ”用0、1或 2 代替,0代表 “文件开始”,1 为“当前位置”,2 为 “文件末尾”。 ANSI C 标准指定的名字如下表所示: 起始点 名字 用数字代表 文件开始 SEEK_SET 0 文件当前位置 SEEK_ CUR 1 文件末尾 SEEK_END 2 “位移量”指以 “起始点” 为基点,向前移动的字节数。ANSI C 和大多数版本...
比如文件长1000字节,你想改第100字节,其他不想改。那你就偏移到第100字节,这时候写入修改的就是100字节以后的文件内容。偏移长度可以是其他值,要小于文件大小。
下面是我的一个小方法: void CompareTwoFiles(FILE *fp1, FILE *fp2){ char ch1, ch2; int flag = 0; //must seek first to determine the sizes fseek (fp1, 0, SEEK_END); fseek (fp2, 0, SEEK_END); if(ftell(fp1) != ftell(fp2)){ printf("The sizes of the files are different so ...