mseek バイナリファイルの中でカレントの位置を設定する.

## 呼び出し手順

    mseek(n [,fd, flag])

## 引数

n

  スカラー: オフセット(単位:バイト数).

fd

  スカラー: `mopen`関数により返されたファイル記述子. `-1`は直近にオープンされたファイルを意味します. デフォルト値は`-1`です.

flag

  文字列: 原点を指定. デフォルト値 `'set'`.

## 説明

関数 `mseek`は,ストリーム`fd`上での 次の入力または出力処理の位置を設定します. 新たな位置は,符号付きの位置を表すバイト数`n`で指定した位置となります. この値の意味は, `flag` の値,つまり, `'set'`, `'cur'` または `'end'` に基づき,先頭位置から,または,現在位置から,または,ファイル終端からとなります. これが, `flag` が `'set'`の場合に `n`を正としなければならない理由です.

`mseek` により ファイルの既存のデータの終端より後の部分にファイル位置インジケータを 設定することができるようになります. データがこのような場所に書き込まれた時, 隙間にあるデータが読み込まれた場合に, 隙間に実際に書き込まれたデータに達するまでは 0 が返されます. `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),'Bug');
    end
    mseek(0,fd1,'set');

    // 保存されたデータより多くのデータを読み込む
    res1=mget(100,'d',fd1);
    if res1<>res then
      write(%io(2),'Bug');
    end
    meof(fd1)
    mclearerr(fd1)
    mclose(fd1);

## 参照

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