Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Fseek

CuBook05

Функция

Устанавливает указатель файла в потоке.
 
Синтаксис

#include <stdio.h>
int fseek(FILE* stream, long offset, int fromwhere);
 
Прототип

stdio.h
 
Описание

Функция fseek устанавливает адресный указатель файла, соответствующий потоку stream, в новую позицию, которая расположена по смещению offset относительно места в файле, определяемого параметром fromwhere.
Параметр fromwhere может иметь одно из трех значений 0, 1 или 2, которые представлены тремя символическими константами (определенными в файле stdio.h), следующим образом:
SEEK_SET (0) - начало файла;
SEEK_CUR (1) - позиция текущего указателя файла;
SEEK_END (2) - конец файла (EOF);
Функция fseek сбрасывает любой символ, записанный с помощью функции ungetc. Функция fseek используется с операциями ввода/вывода в поток. При работе с дескриптором файла пользуйтесь функцией lseek. После этой операции можно производить как ввод, так и вывод в поток.
 
Возвращаемое значение

Функция fseek возвращает значение 0, если указатель файла успешно перемещен, и ненулевое значение в случае неудачного завершения.

Примечание. Функция fseek может вернуть нулевое значение даже в случае, если этого не было. Это происходит в результате того, что DOS, которая и перемещает указатель, не проверяет его установку. Функция fseek возвращает индикатор ошибки только в случае, если устройство или файл не открыты.
 
Переносимость

Данная функция поддерживаются на системах UNIX и стандартом ANSI C.
 
Пример

#include <stdio.h>

int main(void)
{
FILE *stream;
stream = fopen("MYFILE.TXT", "r");
print("filesize of MYFILE.TXT is %ld bytes\n",
filesize(stream));
}
long filesize(FILE *stream);
{
long curpos,length;
/* сохранить текущее положение указателя */
curpos = ftell(stream);
/* перейти в конец файла */
fseek(stream, 0L, SEEK_END);
/* получить текущее положение указателя */
length = ftell(stream);
/* восстановить старое положение */
fseek(stream, curpos, SEEK_SET);
return(length);
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

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