That is not part of POSIX, those are only present as you listed on linux systems - some other systems have a /proc with different things in it (sometimes stuff that's symbolic links on linux will be hardlinks, textfiles on linux will be binary, or different files with different information) or none at all
CXXIII. POSIX Funktionen
Einführung
Dieses Modul enthält eine Schnittstelle zu den im IEEE 1003.1 (POSIX.1) Standards Dokument definierten Funktionen, die durch andere Mittel nicht erreichbar sind. POSIX.1 definierte zum Beispiel auch die open(), read(), write() und close() Funktionen, die seit langer Zeit Bestandteil von PHP 3 sind. Trotzdem standen einige andere systemspezifische Funktionen bisher nicht zur Verfügung. Dieses Modul versucht hier Abhilfe zu schaffen, indem es einen einfachen Zugang zu diesen Funktionen bereitstellt.
| Warnung |
| Sensible Daten können mit den POSIX-Funktionen, z.B. posix_getpwnam() und Freunde, abgefragt werden. Die POSIX-Funktionen führen keinerlei Zugriffsüberprüfungen durch, wenn safe mode aktiviert ist. Es wird daher stark empfohlen, die POSIX-Erweiterung komplett zu deaktivieren (verwenden Sie dazu bei der Konfiguration --disable-posix), wenn Sie in einer solchen Umgebung arbeiten. |
Anmerkung: Diese Erweiterung steht auf Windowsbetriebssystemen nicht zur Verfügung.
Installation
Die POSIX-Funktionen stehen standardmäßig zur Verfügung. Sie können sie mit der Option --disable-posix deaktivieren.
Vordefinierte Konstanten
Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.
- POSIX_F_OK (integer)
- Prüft, ob die Datei existiert.
- POSIX_R_OK (integer)
- Prüft, ob die Datei existiert und ob sie gelesen werden darf.
- POSIX_W_OK (integer)
- Prüft, ob die Datei existiert und ob sie geschrieben werden darf.
- POSIX_X_OK (integer)
- Prüft, ob die Datei existiert und ob sie ausgeführt werden darf.
- POSIX_S_IFBLK (integer)
- Blockorientierte Spezialdatei
- POSIX_S_IFCHR (integer)
- Zeichenorientierte Spezialdatei
- POSIX_S_IFIFO (integer)
- FIFO (benannte Pipe) Spezialdatei
- POSIX_S_IFREG (integer)
- Normale Datei
- POSIX_S_IFSOCK (integer)
- Socket
Anmerkung: Diese Konstanten stehen seit PHP 5.1.0 zur Verfügung. Bitte beachten Sie außerdem, dass auf Ihrem System manche davon nicht zur Verfügung stehen könnten.
Siehe auch
Der Abschnitt über Prozesskontroll-Funktionen könnte für Sie von Interesse sein.
Inhaltsverzeichnis
- posix_access — Ermittelt die Zugriffsberechtigungen einer Datei
- posix_ctermid — Liefert den Pfad des maßgebenden Terminals
- posix_get_last_error — Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer
- posix_getcwd — Pfadname des aktuellen Verzeichnisses
- posix_getegid — Liefert die effektive Gruppen-ID des aktuellen Prozesses
- posix_geteuid — Liefert die effektive Benutzer-ID des aktuellen Prozesses
- posix_getgid — Liefert die reale Gruppen-ID des aktuellen Prozesses
- posix_getgrgid — Liefert zu einer Gruppen-ID Informationen über diese Gruppe
- posix_getgrnam — Liefert zu einem Gruppennamen Informationen über diese Gruppe
- posix_getgroups — Liefert die Gruppenliste des aktuellen Prozesses
- posix_getlogin — Liefert den Benutzernamen des Eigentümers des aktuellen Prozesses
- posix_getpgid — Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
- posix_getpgrp — Liefert die Prozessgruppenkennung des aktuellen Prozesses
- posix_getpid — Liefert die aktuelle Prozesskennung
- posix_getppid — Liefert die Prozesskennung des Elternprozesses
- posix_getpwnam — Liefert zu einem Benutzernamen Informationen über diese Benutzerin
- posix_getpwuid — Liefert zu einer Benutzer-ID Informationen über diese Benutzerin
- posix_getrlimit — Liefert Informationen über Systemressourcen-Limits
- posix_getsid — Liefert die aktuelle Session-ID (sid) des Prozesses
- posix_getuid — Liefert die reale Benutzer-ID des aktuellen Prozesses
- posix_isatty — Ermittelt, ob ein Datei-Deskriptor ein interaktives Terminal ist
- posix_kill — Sendet einem Prozess ein Signal
- posix_mkfifo — Erzeugt eine "FIFO special"-Datei (named pipe)
- posix_mknod — Erzeugt eine spezielle oder eine gewöhnliche Datei (POSIX.1)
- posix_setegid — Setzt die effektive Gruppen-ID des aktuellen Prozesses
- posix_seteuid — Setzt die effektive Benutzer-ID des aktuellen Prozesses
- posix_setgid — Setzt die Gruppen-ID des aktuellen Prozesses
- posix_setpgid — Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
- posix_setsid — Macht den aktuellen Prozess zum Prozessgruppen-Führer
- posix_setuid — Setzt die Benutzer-ID des aktuellen Prozesses
- posix_strerror — Liefert die System-Fehlermeldung, die zur angegebenen errno gehört
- posix_times — Liefert Rechenzeiten
- posix_ttyname — Ermittelt den Namen des Terminal-Devices
- posix_uname — Liefert Auskunft über das System
don't forget that in posix systems you can use /proc/$process_id/
files:
auxv
cmdline
cwd
environ
exe
fd
maps
mem
mounts
root
stat
statm
status
task
wchan
with it you can make somethings like:
$PPID=getmypid();
$pid=pcntl_fork();
if ($pid==0){
while(1){
if (strpos(file_get_contents("/proc/$PPID/cmdline"),'php')===false) echo "parent pid die";
}
}else{
// forked
}
with this you can use some libs that block signal or some bad signal handling or zombies process or anything you can think :)
