lseek

 Функция           Перемещает указатель чтения/записи файла.

Синтаксис #include 
          long lseek(int handle, long offset,int fromwhere);

 Файл, содержащий   io.h
 прототип

 Описание  Функция lseek устанавливает указатель файла, свя-
           занный с параметром handle, в новую позицию, ко-
           торая находится на offset байтов относительно
           местоположения заданного параметром fromwhere.
           Параметр fromwhere должен иметь одно из трех зна-
           чений 0, 1 или 2, которые представлены тремя сим-
           волическими константами (определенными в файле
           stdio.h) следующим образом:
        --------------------------------------------------¬
        ¦Параметр fromwhere       Месторасположение       ¦
        ¦                         в файле                 ¦
        +-------------------------------------------------+
        ¦SEEK_SET      (0)        начало файла            ¦
        ¦SEEK_CUR      (1)        текущая позиция указател¦
        ¦                         файла                   ¦
        ¦SEEK_END      (2)        конец файла             ¦
        L--------------------------------------------------

 Возвращаемое Функция lseek возвращает значение смещения
 значение     новой y позиции указателя, измеряемой в байтах
              от начала файла. В случае ошибки функция lseek
              возвращает значение -1L и глобальная перемен-
              ная errno получает одно из следующих значений:

              EBADF   - неверный номер файла;
              EINVAL  - неверный аргумент.

              На устройствах, непригодных для поиска, таких,
              как терминалы и принтеры,возвращаемое значение
              неопределено.

 Переносим.   lseek поддерживается на всех системах UNIX.

 Смотрите также     filelength fseek ftell getc open
                    sopen ungetc _write write

 Пример:

 #include
 #include
 #include
 #include
 #include

 int main(void)
 {
    int handle;
    char msg[] = "Это тест";
    char ch;
    /* создать файл */
  handle = open("TEST.$$$",O_CREAT|O_RDWR,S_IREAD|S_IWRITE);
    /* вывести в файл данные */
    write(handle,msg,strlen(msg));
    /* переместить указатель в начало файла */
    lseek(handle,0L,SEEK_SET);
    /* считывать данные из файла, пока не встретим EOF */
    do
    {
       read(handle,&ch,1);
       printf("%c",ch);
    } while(!eof(handle));
    close(handle);
    return 0;
 }