# mseek

устанавливает текущую позицию в двоичном файле

## Последовательность вызова

    mseek(n [,fd, flag])

## Аргументы

n

  положительный скаляр: смещение от исходного положения в количестве байтов.

fd

  скаляр: дескриптор файла, возвращённый функцией `mopen`. `-1` указывает на последний открытый файл. Значение по умолчанию равно `-1`.

flag

  строка: определяет исходное положение. Значение по умолчанию -- `'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);

## Смотрите также

- mclose
- meof
- mfprintf
- fprintfMat
- mfscanf
- fscanfMat
- mget
- mgetstr
- mopen
- mprintf
- mput
- mputstr
- mtell
- mdelete