Учись программированию на C++ Builder бесплатно!

Функция


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

Синтаксис


#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

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


Поиск по сайту