C言語,getpid()でプログラム自身のプロセスIDを取得する

スポンサーリンク

鍛錬 343

C言語,getpid()でプログラム自身のプロセスIDを取得する

プログラム中で、プログラム自身のプロセスIDを取得するには getpid() を使用します。
 
getpid() については、以下に示す通りです。

#include <sys/types.h>
#include <unistd.h>

pid_t getpid(void);
 

 
getpid() は、呼び出し元プロセスのプロセスIDを返します。

スポンサーリンク

プログラム

以下は、プログラム自身のプロセスIDを取得するプログラム、get_pid.c です。

// include
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

// main
int main(void)
{
	pid_t pid;
	
	pid = getpid();
	printf("get_pid の PID = %d\n", pid);
	
	sleep(10);
	
	return 0;
}
スポンサーリンク

実行結果

以下は、次に示す順序で、プログラム get_pid.c がプログラム自身のプロセスIDを取得していることを確認しています。

  1. プログラム get_pid.c をバックグラウンドで実行。
  2. get_pid.c が出力したPIDを確認。
  3. ps コマンドで get_pid.c のPIDを確認し、上記2で確認したPIDと同一であることを確認。
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra get_pid.c -o get_pid
***@ubuntu:~/***/test/c$ ./get_pid &
[1] 12295
***@ubuntu:~/***/test/c$ get_pid の PID = 12295

***@ubuntu:~/***/test/c$ ps x | grep get_pid | grep -v grep
 12295 pts/0    S      0:00 ./get_pid

 
上記に示した通り、getpid() を使用して取得したPIDも、ps コマンドを使用して取得したPIDも、12295 であり同一であることが確認できました。

タイトルとURLをコピーしました