Приглашаем посетить
Островский (ostrovskiy.lit-info.ru)

Учебник по PHP : Работа с файлами : Другие функции

Работа с файлами : Другие функции

ftruncate
Усекает файл.

Синтаксис :
bool ftruncate(int $f, int $newsize)

Эта функция усекает открытый файл $f до размера $newsize. Разумеется, файл должен быть открыт в режиме, разрешающим запись.
Например, следующий код очищает весь файл:

ftruncate($f,0);

fflush
Немедленная запись всех изменений в файле.

Синтаксис :
void fflush(int $f)

Заставляет PHP немедленно записать на диск все изменения, которые производились до этого с открытым файлом $f. Что это за изменения? Дело в том, что для повышения производительности все операции записи в файл буферизируются: например, вызов fputs($f, "Это строка!") не приводит к непосредственной записи данных на диск - сначало они попадают во внутренний буфер (обычно размером 8К). Как только буфер заполняется, его содержимое отправляется на диск, а сам он очищается, и все повторяется вновь. Особенный выигрыш от буферзации чувствуется в сетевых операциях, когда просто глупо отправлять данные маленькими порциями.

set_file_buffer
Устанавливает размер буфера.

Синтаксис :
int set_file_buffer(int $f, int $size)

Эта функция устанавливает размер буфера, о котором говорилось выше, для указанного открытого файла $f.
Чаще всего она используется так:

set_file_buffer($f,0);

Приведенный код отключает буферизацию для указанного файла, так что теперь все данные, записываемые в файл, немедленно отправляются на диск или в сеть.

flock
Блокирование файла.

Синтаксис :
bool flock(int $f, int $operation [, int $wouldblock])

Функция устанавливает для указанного открытого дескриптора файла $f режим блокировки, который бы хотел получить текущий процесс. Этот режим задается аргументом $operation и может быть одной из следующих констант:
  • LOCK_SH (или 1) - разделяемая блокировка;
  • LOCK_EX (или 2) - исключительная блокировка;
  • LOCK_UN (или 3) - снять блокировку;
  • LOCK_NB (или 4) - эту константу нужно прибавить к одной из предыдущих, если вы не хотите, чтобы программа подвисала на flock() в ожидании своей очереди, а сразу возвращала управление.
  • В случае, если был затребован режим без ожидания, и блокировка не была успешно установлена, в необязятельный параметр-переменную $wouldblock будет записано значение истина true.
    В случае ошибки функция возвращает false, а в случае успешного завершения - true.

    Назад Содержание Вперед