Функция Перемещает указатель чтения/записи файла.
Синтаксис #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.
Смотрите также filelengthfseekftellgetcopensopenungetc_writewrite
Пример:
#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;
}