$ uptime 22:35:06 up 6:26, 4 users, load average: 0.00, 0.03, 0.05或是利用 /proc/uptime 來取得資料:
$ cat /proc/uptime 23282.04 41316.79但是如果想要寫 C 程式來取得資料呢?
我找到一個在 <time.h> 裡面的函式 clock_gettime()
程式碼如下:
#include <stdio.h> #include <time.h> int main(int argc, char* argv[]) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) { printf("%ld.%ld\n", ts.tv_sec, ts.tv_nsec); } return 0; }在編譯的時候要加上 -lrt 才能通過編譯
$ gcc -Wall -g -lrt uptime.c -o uptime執行的結果
$ ./uptime 23637.821285555因為我想要在 XWindow 底下根據當下的開機時間,製造出新的 XKeyEvent 出來,而所有的 XEvent 都是使用毫秒的時間格式 (ex. 23637821),所以才去找出這個的函式來用。
詳細的使用說明可以看 manpage
$ man clock_gettime