9.5. POSIX-функции
Кристиан Кентопп (Kristian Koehntopp) добавил к PHP модуль поддержки стандарта POSIX.1, еще известного как IEEE 1003.1. Этот стандарт определяет функциональность, обеспеченную процессами операционной системы. Некоторые функции этого раздела не входят в этот стандарт, но они традиционно имеются в операционных системах System V или BSD Unix.
Многие из этих функций доступны только пользователю root. Сценарии PHP выполняются только владельцем процесса Web-сервера, который обычно является отдельным пользователем, предназначенным только для этой цели. Работа Web-сервера под управлением пользователя root несет в себе опасность. Любой, имеющий возможность работать с файлом PHP, с помощью Web-сервера может получить полное управление системой. Однако необходимо помнить, что PHP может также компилироваться как автономная программа. В таком случае он может использоваться как любой другой процессор, работающий со сценариями.
Эти функции работают с C-функциями, указанными в названии функции после префикса posix_. За более подробной информацией советую обратиться к справочным страницам.
В листинге 9.93 демонстрируется работа многих POSIX-функций.
Листинг 9.93. POSIX-функции
<?php
print("Путь к терминалу: " . posix_ctermid() . "n"); print("Текущий рабочий каталог: " . posix_getcwd() . "n"); print("Идентификатор эффективной группы: " . posix_getegid() .
"n");
print("Идентификатор эффективного пользователя: " . posix_geteuid() . "n");
print(" Идентификатор группы: " . posix_getgid() . "n"); $groupInfo = posix_getgrgid(posix_getgid()); print(" Имя группы: " . $groupInfo['name'] . "n"); print("Дополнительные идентификаторы группы:" . implode(',', posix_getgroups()) . "n"); print("Регистрация: " . posix_getlogin() . "n"); print("Идентификатор группы процессов: " . posix_getpgid(posix_getpid()) . "n");
print(" Идентификатор текущей группы процессов: " . posix_getpgrp()
. "n");
print(" Идентификатор текущего процесса: " . posix_getpid() .
"n");
print("Идентификатор порождающего процесса: " . posix_getppid() .
"n");
print(" Информация о пользователе (posix_getlogin): ");
print_r(posix_getpwnam(posix_getlogin()));
print(" Информация о пользователе (): ");
print_r(posix_getpwuid(posix_geteuid()));
print(" Пределы ресурса: ");
print_r(posix_getrlimit());
print("SID: " . posix_getsid(posix_getpid()) . "n");
print("Настоящий идентификатор пользователя: " . posix_getuid() .
"n");
print("Системная информация: "); print_r(posix_uname());
?>
string posix_ctermid()
Функция posix_ctermid возвращает путь к терминалу. integer posix_errno()
Эта функция возвращает код последней ошибки, допущенной POSIX-функцией.
string posix_getcwd()
Функция posix_getcwd возвращает текущий рабочий каталог. integer posix_getegid()
Функция posix_getegid возвращает эффективный идентификатор группы вызывающего процесса.
integer posix_geteuid()
Функция posix_geteuid возвращает эффективный идентификатор пользователя для процесса PHP.
integer posix_getgid()
Функция posix_getgid возвращает идентификатор текущей группы.
array posix_getgrgid(integer group)
Функция posix_getgrgid возвращает массив, описывающий доступ к базе данных по номеру группы. Возвращаются элементы gid, members, name и запись, соответствующая каждому члену группы.
array posix_getgrnam(string group)
Функция posix_getgrnam возвращает массив, описывающий групповую базу данных по имени группы. Возвращаются элементы gid, members, name и запись, соответствующая каждому члену группы.
array posix_getgroups()
Функция posix_getgroups возвращает дополнительные идентификаторы группы.
string posix_getlogin()
Функция posix_getlogin используется для получения имени пользователя, под управлением которого выполняется процесс PHP.
integer posix_getpgid(integer pid)
Функция posix_getpgid возвращает идентификатор группы для заданного идентификатора процесса.
integer posix_getpgrp()
Функция posix_getpgrp возвращает идентификатор группы текущего процесса.
integer posix_getpid()
Функция posix_getpid возвращает идентификатор процесса.
integer posix_getppid()
Функция posix_getppid возвращает идентификатор порождающего процесса.
array posix_getpwnam(string user)
Функция posix_getpwnam возвращает массив, описывающий запись в базе данных пользователей. Элементами массива являются dir, gecos, gid, name, passwd, shell и uid.
array posix_getpwuid(integer user)
Функция posix_getpwuid возвращает массив, описывающий запись в базе данных пользователей на основании заданного идентификатора пользователя. Элементами этого массива являются dir, gecos, gid, name, passwd, shell и uid. Такие же элементы возвращает функция posix_getpwnam.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Операционная система. Часть Двадцать Пятая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Операционная система. Часть Двадцать Четвёртая. | PHP. Операционная система. Часть Двадцать Шестая. |