一:概述
在官方文档里,对于fseek的描述是
Move to specified position in file,移到文件的某一个特殊位置
二:语法
status = fseek(fileID, offset, origin)
fileID的意思是fopen打开时产生的整数标识,大于0时,表示文件成功打开。
在文件中,offset是,相对于起始origin的位置开始移动的整数
origin有三种状态,bof,cof,eof,其分别表示文件的开始位置,当前位置,和末尾位置。
如果操作成功,则状态返回0,否则返回为-1.
三:举例,方便加深理解
要求:Copy 5 bytes from the file test1.dat, startingat the tenth byte, and append to the end of test2.dat
解析:有两个文件,test1.dat,test2.dat
在文件test1.dat的第10个位置,复制5个byte到test2.dat的末尾处。
程序:
% Create files test1.dat and test2.dat
% Each character uses 8 bits (1 byte)
%open test1 and type is w+,then write char
fid1 = fopen(‘test1.dat‘, ‘w+‘);
fwrite(fid1, ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘);
%open test2 and type is w+,then write char
fid2 = fopen(‘test2.dat‘, ‘w+‘);
fwrite(fid2, ‘Second File‘);
% Seek to the 10th byte (‘J‘), read 5
fseek(fid1, 9, ‘bof‘);
A = fread(fid1, 5, ‘uint8=>char‘);%%%%%%%%%%fread
fclose(fid1);
% Append to test2.dat
fseek(fid2, 0, ‘eof‘);
fwrite(fid2, A);%%%%%%%%%%%%%%%%%%fwrite
fclose(fid2);
四:综述
通过fid找到操作的文件,然后找到文件要操作的具体位置