CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
lseek
lseek
Функция Перемещает указатель чтения/записи файла.
Синтаксис #include <io.h>
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) конец файла
--------------------------------------------------
Возвращаемое Функция lseek возвращает значение смещения новой
значение позиции указателя, измеряемой в байтах от начала
файла. В случае ошибки функция lseek возвращает
значение -1L и глобальная переменная errno
получает одно из следующих значений:
EBADF - Неверный номер файла.
EINVAL - Неверный аргумент.
На устройствах, непригодных для поиска, таких, как
терминалы и принтеры, возвращаемое значение
неопределено.
Переносимость lseek поддерживается на всех системах UNIX.
Смотрите также filelength, fseek, ftell, getc, open, sopen,
ungetc, _write, write.
Пример:
#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;
}
