integer stream_set_write_buffer(resource file, integer size)
Функция stream_set_write_buffer (листинг 9.43) используется для установки размера буфера записи файлового потока. Для нее требуется дескриптор файла, созданного функциями fopen, fsockopen или popen. Аргумент size представляет размер буфера в байтах, и если установить размер буфера равным нулю, то буферизация использоваться не будет. Можно только установить размер буфера перед началом операций чтения/записи в файловый поток. По умолчанию файловые потоки запускаются с буфером 8 Кбайт.

Листинг 9.43. Функция stream_set_write_buffer

<?php
// убедитесь в том, что файл открыт успешно if(!($fp = fopen("/tmp/data.txt","w")))
{
print(" файл невозможно открыть "); exit;
}
// использовать запись без буферизации stream_set_write_buffer($fp, 0); for($index=0; $index<10; $index++)
{
// записать строку в файл fwrite($fp, "line $indexn");
}
// закрыть файл fclose($fp);
?>

boolean symlink(string source, string destination)
Функция symlink (листинг 9.44) создает символическую ссылку на указанный в ар­гументе ресурс source с именем, заданным в аргументе destination. Для создания твердой ссылки необходимо использовать функцию link.

Листинг 9.44. Функция symlink

<?php
// создать ссылку moredata.txt на существующий файл data.txt if(symlink("data.txt", "moredata.txt"))
{
print("Создана символическая ссылка");
}
else
{
print(" Символическая ссылка не создана");
}
?> 
string tempnam(string path, string prefix)
Функция tempnam создает новый файл по заданному пути. В имя файла будет добавлен префикс, заданный в аргументе prefix. Реализации этой функции в разных ОС отличаются. На платформе Linux, например, для того чтобы имя файла стало уникальным, в него добавляется шесть символов. Файлу присваивается режим "чтение/запись" для всех пользователей. Функция возвращает имя файла.
integer tmpfile()
Функция tmpfile (листинг 9.45) открывает новый временный файл и возвращает его дескриптор, который используется там же, как и дескриптор, возвращаемый функцией fopen с использованием режима обновления. После закрытия файла или завершения работы вашего сценария этот файл будет удален. Эта функция является оболочкой для C-функции с тем же самым именем. Если в силу каких-либо причин файл не может быть создан, возвращается значение FALSE.

j Листинг 9.45. Функция tmpfile_
<?php
// открыть временный файл $fp = tmpfile();
// для моделирования определенного процесса //записать 10 Кбайт произвольных данных
for($i=0; $i<10240; $i++)
{
//выбрать произвольную букву
fputs($fp, chr(rand(ord(' '), ord('z'))));
}
// вернуться в начало файла rewind($fp);
// вывести и закрыть файл, // тем самым удалив его fpassthru($fp);
?>

boolean touch(string filename, integer time, integer atime)
Функция touch (листинг 9.46) делает попытку задать время, когда файл был моди­фицирован в последний раз, выраженное в секундах, прошедших с 1 января 1970 года. Если аргумент time пропущен, используется текущее время. Если имеется аргумент atime, в качестве времени доступа задается указанное время. Если файл не существует, будет создан файл нулевой длины. Эта функция всегда используется для создания пустых файлов.
Для определения времени последней модификации файла используйте функцию filemtime, а для определения времени последнего доступа - функцию fileatime.

Листинг 9.46. Функция touch

<?php
touch("data.txt");

 ?> 
integer umask(integer umask)
Функция umask (листинг 9.47) возвращает разрешения, заданные при создании файлов. Если задан необязательный аргумент umask, будет получено значение как результат операции "логическое И" (&), выполненное с заданным целым числом и значением 0777. На платформе Windows эта функция не делает ничего и возвращает значение FALSE. Для того чтобы определить разрешения, установленные для определенного файла, можно воспользоваться функцией fileperms.

| Листинг 9.47. Функция umask_
<?php
printf("umask равна %o", umask(0444));
?>

boolean unlink(string filename)
Функция unlink (листинг 9.48) удаляет файлы. Для удаления каталога используется функция rmdir.

Листинг 9.48. Функция unlink

<?php
if(unlink("data2.txt"))
{
print(" файл data2.txt удален");
}
else
{
print(" файл data2.txt не может быть удален");
}
?>

vfprintf(resource file, string format, array values)
Функция vfprintf аналогична функции fprintf, за исключением того, что значения, определяющие формат, передаются в массиве.