clock_getcpuclockid

Section: C Library Functions (3)
Updated: 2025-05-17
Index JM Home Page
 

名前

clock_getcpuclockid - プロセスの CPU 時刻のクロック ID を取得する  

ライブラリ

glibc 2.17 から標準 C ライブラリ (libc,\ -lc)

glibc 2.17 より前は、Real-time library (librt,\ -lrt)  

書式

#include <time.h>

 int clock_getcpuclockid(pid_t pid, clockid_t *clockid);

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

clock_getcpuclockid():

    _POSIX_C_SOURCE >= 200112L
 

説明

clock_getcpuclockid() 関数は、 プロセス ID が pid のプロセスの CPU 時刻のクロック ID を取得し、 その ID を clockid が指す場所に入れて返します。 pid が 0 の場合、呼び出し元のプロセスの CPU 時刻のクロック ID が返されます。  

返り値

成功すると、 clock_getcpuclockid() は 0 を返します。 エラーの場合、「エラー」の節のリストにある正のエラー番号のいずれかを返します。  

エラー

ENOSYS
カーネルが他のプロセスのプロセス単位の CPU 時刻のクロックの取得に対応しておらず、 かつ pid が呼び出し元のプロセスを指していませんでした。
EPERM
呼び出し元プロセスが pid で指定されたプロセスの CPU 時刻のクロックにアクセスする許可を持っていませんでした。(POSIX.1-2001 で規定されています。 カーネルが他のプロセスのプロセス単位の CPU 時刻のクロックの取得に対応していない場合には、このエラーは発生しません。)
ESRCH
ID が pid のプロセスが存在しません。
 

属性

この節で使用されている用語の説明については、 attributes(7) を参照してください。
インターフェース 属性 値
clock_getcpuclockid() Thread safety MT-Safe
 

標準

POSIX.1-2008.  

履歴

glibc 2.2. POSIX.1-2001.  

注意

pid に 0 を指定して clock_getcpuclockid() を呼び出して得られたクロック ID を引数として clock_gettime(2) の呼び出すのは、 クロック ID CLOCK_PROCESS_CPUTIME_ID を使って clock_gettime(2) の呼び出すのと同じです。  

例

以下のサンプルプログラムは、 コマンドラインで指定された ID を持つプロセスの CPU 時刻のクロック ID を取得し、 clock_gettime(2) を使ってそのクロックの時刻を取得します。 以下は実行例です。

$ ./a.out 1 # Show CPU clock of init process CPU-time clock for PID 1 is 2.213466748 seconds  

プログラムのソース

#define _XOPEN_SOURCE 600 #include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> int main(int argc, char *argv[]) {
    clockid_t clockid;
    struct timespec ts;
    if (argc != 2) {
        fprintf(stderr, "%s <process-ID>\n", argv[0]);
        exit(EXIT_FAILURE);
    }
    if (clock_getcpuclockid(atoi(argv[1]), &clockid) != 0) {
        perror("clock_getcpuclockid");
        exit(EXIT_FAILURE);
    }
    if (clock_gettime(clockid, &ts) == -1) {
        perror("clock_gettime");
        exit(EXIT_FAILURE);
    }
    printf("CPU-time clock for PID %s is %jd.%09ld seconds\n",
           argv[1], (intmax_t) ts.tv_sec, ts.tv_nsec);
    exit(EXIT_SUCCESS); }  

関連項目

clock_getres(2), timer_create(2), pthread_getcpuclockid(3), time(7)

関連キーワード

getcpuclockid   クロック   clock   時刻   clockid   gettime   argv   exit   time   カーネル   単位   process   seconds   argc   perror   ライブラリ   Real   library   検査   マクロ   要件   macros   場所   成功   番号

Linux マニュアル 一覧

関連するコマンド・関数

pthread_getcpuclockid.3   clock_getres.2   clock_gettime.2   clock_settime.2   adjtime.3   time.7
 

Index

名前
ライブラリ
書式
説明
返り値
エラー
属性
標準
履歴
注意
例
プログラムのソース
関連項目

This document was created by man2html, using the manual pages.
Time: 04:39:19 GMT, October 11, 2026