FreeMat: FSEEK Seek File To A Given Position

FreeMat

- Main Page
- Related Pages

FSEEK Seek File To A Given Position

Section: Input/Ouput Functions

# Usage

Moves the file pointer associated with the given file handle to the specified offset (in bytes). The usage is

      fseek(handle,offset,style)

The `handle` argument must be a value and active file handle. The `offset` parameter indicates the desired seek offset (how much the file pointer is moved in bytes). The `style` parameter determines how the offset is treated. Three values for the `style` parameter are understood:

- string `'bof'` or the value -1, which indicate the seek is relative to the beginning of the file. This is equivalent to `SEEK_SET` in ANSI C.
- string `'cof'` or the value 0, which indicates the seek is relative to the current position of the file. This is equivalent to `SEEK_CUR` in ANSI C.
- string `'eof'` or the value 1, which indicates the seek is relative to the end of the file. This is equivalent to `SEEK_END` in ANSI C.

The offset can be positive or negative.

# Example

The first example reads a file and then ``rewinds'' the file pointer by seeking to the beginning. The next example seeks forward by 2048 bytes from the files current position, and then reads a line of 512 floats.

    --> % First we create the file
    --> fp = fopen('test.dat','wb');
    --> fwrite(fp,float(rand(4096,1)));
    --> fclose(fp);
    --> % Now we open it
    --> fp = fopen('test.dat','rb');
    --> % Read the whole thing
    --> x = fread(fp,[1,inf],'float');
    --> % Rewind to the beginning
    --> fseek(fp,0,'bof');
    --> % Read part of the file
    --> y = fread(fp,[1,1024],'float');
    --> who x y
      Variable Name       Type   Flags             Size
                  x    double                    [1x4096]
                  y    double                    [1x1024]
    --> % Seek 2048 bytes into the file
    --> fseek(fp,2048,'cof');
    --> % Read 512 floats from the file
    --> x = fread(fp,[512,1],'float');
    --> % Close the file
    --> fclose(fp);