C言語システムコール-getsid

getsidシステムコール

概要

getsidはプロセスのセッションIDを取得します。

getsidはLinuxにおいて新しく追加されたシステムコールであるため、古いOSでは使用できない場合があります。


サンプルプログラム


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

int
main(void)
{
    pid_t pid = 0;
    int rc = 0;

    printf("sid = %d\n", getsid(0));

    pid = fork();
    if(pid < 0){
        printf("Error: fork(%d) %s\n", errno, strerror(errno));
        return(-1);
    }
    if(pid > 0){
        /* 親プロセスを終了する */
        _exit(0);
    }

    rc = setsid();
    if(pid < 0){
        printf("Error: setsid(%d) %s\n", errno, strerror(errno));
        return(-1);
    }

    printf("sid = %d\n", getsid(0));

    return(0);
}

関連ページ