getpid
プロセスのIDを取得します.
返り値はプロセスID
#include<sys/types.h>
#include<unistd.h>
pid_t getpid(void);
pid_t getppid(void);
LinuxベースのC言語を用いたシステムコールの利用方法.
プロセスのIDを取得します.
返り値はプロセスID
#include<sys/types.h>
#include<unistd.h>
pid_t getpid(void);
pid_t getppid(void);
次のプログラムは, プロセスを作りfor文で1秒間隔で文字列を出力し,
その文字列内にプロセスのIDを表示させています.
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
int main(void)
{
int i;
pid_t pid;
if((pid = fork()) == EOF) {
perror("fork");
exit(1);
}
else if(pid == 0)
printf("Child run...\n");
else
printf("Mother run...\n");
for(i = 0; i < 10; i++) {
printf("%02d: process run(PID:%d)\n", i, getpid());
sleep(1);
}
return 0;
}
実行例
$ ./pid
Mother run...
00: process run(PID:5316)
Child run...
00: process run(PID:5317)
01: process run(PID:5316)
01: process run(PID:5317)
02: process run(PID:5317)
02: process run(PID:5316)
03: process run(PID:5317)
03: process run(PID:5316)
04: process run(PID:5317)
04: process run(PID:5316)
05: process run(PID:5317)
05: process run(PID:5316)
06: process run(PID:5317)
06: process run(PID:5316)
07: process run(PID:5317)
07: process run(PID:5316)
08: process run(PID:5316)
08: process run(PID:5317)
09: process run(PID:5317)
09: process run(PID:5316)