PROCINFO = AWKのプロセスに関する情報。プロセスIDなど(Gawk専用) - AWK
△(部分対応)Gawk on Windows △(部分対応)Gawk ×mawk32 ×Mawk ×awk
AWKのプロセスに関する情報です。o Windows版のGawkでは、部分的に対応していました。プロセスIDを取得する事が出来ます。
**** 書式
--------
PROCINFO[ "要素名" ]
--------
o この変数は、Gawkの拡張機能です。
o PROCINFOは配列です。 = 変数です。
o 要素名 -- pid などを指定出来ます。指定出来る値は、機能欄の通りです。
**** 機能
o PROCINFO["pid"] で、実行しているAWKのプロセスIDを取得出来ます。
o Windows版の場合、その他の値は、正しく設定されていない事があります。
o この機能をサポートしていない処理系があります。
o Gawk on Windows 3.1.7の場合
--------
PROCINFO["ppid"] = [0]
PROCINFO["pgrpid"] = [0]
PROCINFO["gid"] = [0]
PROCINFO["egid"] = [0]
PROCINFO["version"] = [3.1.5a]
PROCINFO["FS"] = [FS]
PROCINFO["uid"] = [0]
PROCINFO["euid"] = [0]
PROCINFO["pid"] = [2396]
--------
o Gawk for Windows 3.1.6の場合
--------
PROCINFO["ppid"] = [0]
PROCINFO["pgrpid"] = [0]
PROCINFO["gid"] = [0]
PROCINFO["egid"] = [0]
PROCINFO["version"] = [3.1.6]
PROCINFO["FS"] = [FS]
PROCINFO["uid"] = [0]
PROCINFO["euid"] = [0]
PROCINFO["pid"] = [2332]
--------
** 処理系に依存する動作
o この機能をサポートしている処理系は、次の通りです。
+ Gawk on Windows 3.1.7
+ Gawk for Windows 3.1.6
**** メモ
o Gawk以外では、外部プログラムを作って呼び出す方法が、きっと一番お手軽です。
+ 親プロセスのプロセスIDを表示するプログラムを作って、getline関数で取得します。
+ もしくは、「親プロセスのプロセスIDを終了コードに設定するプログラムを作って、system関数」でも取得出来そうです。この時は、最大値の時に正しく渡るかどうか、確認する必要がありそうです。
** その他
o 確認に使ったプログラムです。
--------
BEGIN {
for (i in PROCINFO) {
print "PROCINFO[\"" i "\"] = [" PROCINFO[i] "]";
}
}
--------
**** 確認した処理系
o Gawk on Windows 3.1.7 -- 部分対応
o Gawk for Windows 3.1.6 -- 部分対応
o mawk MBCS (32bit版) 1.3.3 -- 非対応
o Mawk for Windows 1.3.3 -- 非対応
o original = the one true awk(updated May 1, 2007) -- 非対応
==
関連ページ:
▼AWKのパターンと制御文(▼ABC順)
▼AWKプログラムを書く(▼ABC順)
▼AWK
▼制作メモ
> AWKPATH = コマンドでAWKファイル名を指定する時、ファイルの場所を省略する(Gawk, mawk32専用)
+
ENVIRON = 環境変数。読み取り専用
(2010年9月1日変更。メモにあるソースコードを訂正)