fseek

Материал из Pro-Pawn Wiki
Версия от 20:47, 9 июля 2018; Daniel-Cortez (обсуждение | вклад) (Новая страница: «{{DISPLAYTITLE:fseek}} {{Description | Устанавливает текущую позицию в файле. }} {{Params|File: handle, position {{=}} 0, seek_wh…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Описание:

Устанавливает текущую позицию в файле.

Параметры:

(File: handle, position = 0, seek_whence: whence = seek_start)
File: handle Хендл открытого файла.
position Смещение относительно позиции, указанной в параметре whence (необязательный параметр).
seek_whence: whence Позиция перехода, к которой добавляется смещение в параметре position (необязательный параметр; по умолчанию переход происходит в начало файла).


Возвращаемое значение:

0 в случае успеха и ненулевое значение в случае ошибки.

Bug.png
Баг Pawn
Попытка передать функции неправильный хендл (т.е. не возвращённый функциями fopen() или ftemp(), либо уже закрытый с помощью fclose()) приводит к падению сервера.


Пример использования:

main()
{
    new File:f;
    new buffer[128];

    // Создадим пустой файл
    f = fopen("1.txt", io_write);
    fclose(f);

    // Откроем файл заново, но теперь уже в режиме чтения/записи
    f = fopen("1.txt", io_readwrite);

    // Запишем строку и перейдём к 2-му байту файла
    // (т.е. в начало файла со смещением 2)
    fwrite(f, "123456");
    fseek(f, 2, seek_start);

    // Считаем строку из файла и выведем её в консоль
    fread(f, buffer);
    print(buffer); // Должно получиться "3456"

    // Перейдём к концу файла
    fseek(f, 0, seek_end);

    // Закроем файл
    fclose(f);
}


См. также: