| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| A | B | C | D | E |
| F | G | H | I | J |
| K | L | M | N | O |
| P | Q | R | S | T |
| U | V | W | X | Y |
| Z | 数字 | 記号 | ||
プロセスを識別するために使われる、一意の番号のこと。PID、プロセス識別子とも。以下、PIDとする。
pidを与えてプロセスの名前(psコマンドで出てくるname相当)を簡単に得る方法はない。
UNIXはそのようなAPIを用意していないため、汎用性の高い方法はない。
Linuxならばアプリケーションからprocfsにアクセスする方法が最も現実的で、PIDから名前を得る幾つかの方法は、次のとおりである。
この中で最も現実的なのはcmdlineから得る方法かと思われ、Linuxのpsコマンドや、Ubuntuなどの「システム・モニタ」といったソフトウェアは、この情報を表示しているようである。
実際の取得方法は、次の通り。あらかじめ、pid_t型の変数 pid に必要なPIDが入っているものとする。
char buf[32];
int fd;
snprintf(buf, sizeof buf, "/proc/%d/cmdline", pid);
fd = open(buf, O_RDONLY);
*buf = '\0';
if (fd) {
read(fd, buf, (sizeof buf) - 1);
buf[(sizeof buf) - 1] = '\0';
close(fd);
}
確保したbufのサイズに応じて名前が得られる。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます