getpid

プロセスのIDを取得します.
返り値はプロセスID

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

pid_t getpid(void);
pid_t getppid(void);


getpid example

次のプログラムは, プロセスを作り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)

子プロセスの終了を待たずに実行しているため, 親, 子両方のプロセスが同時に実行されています.