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
CXXV. POSIX 関数
導入
このモジュールは、IEEE 10003.1 (POSIX.1) 標準ドキュメントで 定義された関数へのインターフェースを有しています。 これらの関数は、他の手段からは利用できません。 POSIX.1 としては例えばかなり以前から PHP 3 の一部として open(), read(), write() および close() 関数が定義されていました。 いくつかのよりシステム依存の関数は、以前は利用できませんでしたが、 このモジュールではこれらの関数に対する簡単なアクセス手段を提供する ことにより、これらの問題を解決しようとしています。
posix_getpwnam() のような POSIX 関数で重要な データを取得することができます。 safe mode が有効な場合に、 POSIX関数のどれもアクセスチェックを行うことはできません。 このため、このような環境で処理を行うには、 (configure において --disable-posix を指定して) POSIX 拡張モジュールを無効にしておくことを 強く推奨します。
注意: この拡張モジュールは Windows 環境では利用できません。
インストール手順
POSIX 関数は、デフォルトで有効となっています。POSIX 互換関数を --disable-posix により無効にする ことができます。
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
- POSIX_F_OK (integer)
- ファイルが存在するかどうかを調べます。
- POSIX_R_OK (integer)
- ファイルが存在し、読み込みが許可されているかどうかを調べます。
- POSIX_W_OK (integer)
- ファイルが存在し、書き込みが許可されているかどうかを調べます。
- POSIX_X_OK (integer)
- ファイルが存在し、実行が許可されているかどうかを調べます。
- POSIX_S_IFBLK (integer)
- ブロックスペシャルファイル。
- POSIX_S_IFCHR (integer)
- キャラクタスペシャルファイル。
- POSIX_S_IFIFO (integer)
- FIFO (名前つきパイプ) スペシャルファイル。
- POSIX_S_IFREG (integer)
- 通常のファイル。
- POSIX_S_IFSOCK (integer)
- ソケット。
注意: これらの定数は PHP 5.1.0 以降で有効です。システムによっては これらのうちのいくつかが使用できない場合があることにも注意してください。
参考
プロセス制御関数に関する節も 役に立つでしょう。
目次
- posix_access — ファイルのアクセス権限を判断する
- posix_ctermid — 制御する端末のパス名を得る
- posix_get_last_error — 直近で失敗した posix 関数が設定したエラー番号を取得する
- posix_getcwd — 現在のディレクトリのパス名
- posix_getegid — 現在のプロセスの有効なグループ ID を返す
- posix_geteuid — 現在のプロセスの有効なユーザ ID を返す
- posix_getgid — 現在のプロセスの実際のグループ ID を返す
- posix_getgrgid — 指定したグループ ID を有するグループに関する情報を返す
- posix_getgrnam — 指定した名前のグループに関する情報を返す
- posix_getgroups — 現在のプロセスのグループセットを返す
- posix_getlogin — ログイン名を返す
- posix_getpgid — ジョブ制御のプロセスグループ ID を得る
- posix_getpgrp — 現在のプロセスのグループ ID を返す
- posix_getpid — 現在のプロセス ID を返す
- posix_getppid — 親プロセスの ID を返す
- posix_getpwnam — 指定した名前のユーザに関する情報を返す
- posix_getpwuid — 指定 ID のユーザに関する情報を返す
- posix_getrlimit — システムリソース制限に関する情報を返す
- posix_getsid — プロセスの現在の sid を得る
- posix_getuid — 現在のプロセスの実際のユーザ ID を返す
- posix_initgroups — グループアクセスリストを求める
- posix_isatty — ファイル記述子が対話型端末であるかどうかを定義する
- posix_kill — プロセスにシグナルを送信する
- posix_mkfifo — fifo スペシャルファイル(名前付きパイプ)を作成する
- posix_mknod — スペシャルファイルあるいは通常のファイルを作成する (POSIX.1)
- posix_setegid — 現在のプロセスの実効 GID を設定する
- posix_seteuid — 現在のプロセスの実効 UID を設定する
- posix_setgid — 現在のプロセスの GID を設定する
- posix_setpgid — ジョブ制御のプロセスグループ ID を設定する
- posix_setsid — 現在のプロセスをセッションリーダーにする
- posix_setuid — 現在のプロセスの UID を設定する
- posix_strerror — 指定したエラー番号に対応するシステムのエラーメッセージを取得する
- posix_times — プロセス時間を得る
- posix_ttyname — 端末のデバイス名を調べる
- posix_uname — システム名を得る
POSIX 関数
14-Jun-2007 01:04
03-Oct-2006 01:36
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 :)