Russian Belarusian English German Japanese Ukrainian

Lseek

CuBook05

Функция

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

#include <io.h>
long lseek(int handle, long offset,int fromwhere);
 
Прототип

io.h
 
Описание

Функция lseek устанавливает указатель файла, связанный с параметром handle, в новую позицию, которая находится на offset байтов относительно местоположения заданного параметром fromwhere. Параметр fromwhere должен иметь одно из трех значений 0, 1 или 2, которые представлены тремя символическими константами (определенными в файле stdio.h)
 
Возвращаемое значение

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

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

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

#include <sys\stat.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

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;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить