устанавливает текущую позицию в двоичном файле
mseek(n [,fd, flag])
положительный скаляр: смещение от исходного положения в количестве байтов.
скаляр: дескриптор файла, возвращённый функцией mopen
. -1
указывает на последний открытый файл. Значение по умолчанию равно -1
.
строка: определяет исходное положение. Значение по умолчанию --
'set'
.
Функция mseek
устанавливает положение следующей
операции ввода или вывода потока fd
. Новое
положение находится на расстоянии (со знаком), указанном в
n
байт от начала, от текущего положения или от
конца файла в соответствии со значением flag
,
которое может быть 'set'
, 'cur'
или 'end'
.
Функция mseek
позволяет индикатору положения в
файле быть установленным за пределами конца существующих данных в
файле. Если данные будут позднее записаны в это место, то последующее
чтение этих данных в пропущенном месте будет возвращать ноль до тех
пор, пока данные не будут действительно записаны в пропущенное место.
Функция mseek
сама по себе не увеличивает
размер файла.
file3=fullfile(TMPDIR,'test3.bin'); fd1= mopen(file3,'wb'); for i=1:10 mput(i,'d'); end mseek(0); mput(678,'d'); mseek(0,fd1,'end'); mput(932,'d'); mclose(fd1) fd1= mopen(file3,'rb'); res=mget(11,'d') res1=[1:11]; res1(1)=678;res1($)=932; if res1<>res then write(%io(2),'Ошибка в программе'); end mseek(0,fd1,'set'); // попытка чтения данных более, чем сохранено res1=mget(100,'d',fd1); if res1<>res then write(%io(2),'Ошибка в программе'); end meof(fd1) mclearerr(fd1) mclose(fd1); | ![]() | ![]() |