fseek
Материал из Pro-Pawn Wiki
Описание:
Устанавливает текущую позицию в файле.
Параметры:
(File: handle, position = 0, seek_whence: whence = seek_start) |
File: handle | Хендл открытого файла. |
position | Смещение относительно позиции, указанной в параметре whence (необязательный параметр).
|
seek_whence: whence | Позиция перехода, к которой добавляется смещение в параметре position (необязательный параметр; по умолчанию переход происходит в начало файла).
|
Возвращаемое значение:
0
в случае успеха и ненулевое значение в случае ошибки.
Баг 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);
}
{
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);
}
См. также: