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

getuid

概要

getuidはプロセスの実ユーザIDを取得します。


プロセスの実ユーザIDと実効ユーザIDは通常同一の値を持ちます。

「chmod u+s」でセットユーザIDビットが設定された実行ファイルを実行した場合には、実効ユーザIDはファイル所有者のユーザIDに変更されます。

「chmod g+s」でセットグループIDが設定された場合にも同様の変化となります。


getuid関連システムコール

関連するシステムコールは以下の通りです。

  • getuid
    • 実ユーザIDを取得します。
  • geteuid
    • 実効ユーザIDを取得します。
  • getgid
    • 実グループIDを取得します。
  • getegid
    • 実効グループIDを取得します。

サンプルプログラム


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

int
main(void)
{
    uid_t uid  = {0};
    uid_t euid = {0};
    gid_t gid  = {0};
    gid_t egid = {0};

    uid  = getuid();
    euid = geteuid();
    gid  = getgid();
    egid = getegid();

    printf("uid  = %d\n", (int)uid);
    printf("euid = %d\n", (int)euid);
    printf("gid  = %d\n", (int)gid);
    printf("egid = %d\n", (int)egid);

    return(0);
}


関連ページ