1. 程式人生 > >Linux系統獲取使用者空間ns級時間精度——clock_gettime

Linux系統獲取使用者空間ns級時間精度——clock_gettime

clock_gettime函式原型如下:
long sys_clock_gettime (clockid_t which_clock, struct timespec *tp);
1.which_clock

        CLOCK_REALTIME: 系統實時時間,隨系統實時時間改變而改變,即從UTC1970-1-1 0:0:0開始計時
        CLOCK_MONOTONIC: 從系統啟動這一刻起開始計時,不受系統時間被使用者改變的影響
        CLOCK_PROCESS_CPUTIME_ID: 本程序到當前程式碼系統CPU花費的時間
        CLOCK_THREAD_CPUTIME_ID: 本執行緒到當前程式碼系統CPU花費的時間

2.struct timespec

struct timespec
{
 time_t tv_sec;
 long int tv_nsec;
};

3.示例

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
  struct timespec time_start = {0, 0}, time_end = {0, 0};
  clock_gettime(CLOCK_REALTIME, &time_start);  // 獲取當前時間
  printf("start time %llus, %lluns\n", time_start.tv_sec, time_start.tv_nsec);

  clock_gettime(CLOCK_REALTIME, &time_end);  // 上一條列印語句執行之後,獲取當前時間
  printf("end time %llus, %lluns\n", time_end.tv_sec, time_end.tv_nsec);
  
  // 計算出一條列印語句的執行時間
  printf("duration: %llus %lluns\n", time_end.tv_sec - time_start.tv_sec, time_end.tv_nsec - time_start.tv_nsec);
  return 0;
}

編譯:

gcc -g test.c -o test

執行:

./test

結果:

start time 1528767558s, 733149781ns
end time 1528767558s, 733188709ns
duration: 0s 38928ns

相關推薦

Linux系統獲取使用者空間ns時間精度——clock_gettime

clock_gettime函式原型如下:long sys_clock_gettime (clockid_t which_clock, struct timespec *tp);1.which_clock        CLOCK_REALTIME: 系統實時時間,隨系統實時時

java工具類,在Windows,Linux系統獲取電腦的MAC地址、本地IP、電腦名

copy iter 去掉m [] equals linu stat cli catch package com.cloudssaas.util; import java.io.BufferedReader; import java.io.IOException;

Linux系統如何分配空間

如何 方法 inux linu sun 很多 linux 兩個 nis 我在做Linux系統的時候給gsunis這個分區空間分配少了,其他兩個空間也不多,但是根目錄下的空間很多,文檔要求gsunis分區最少要200G以上,現在我給分配了

Linux系統獲取命令幫助方法及簡單命令介紹

系統 運維 Linux系統中的命令一般分兩種:內部命令和外部命令 1.內部命令:內部命令又稱為內置命令,在系統啟動時就調入內存,是常駐內存的,所以執行效率較高。 2.外部命令:外部命令是系統的軟件功能,用戶需要時才從硬盤中讀入內存。區分內部命令和外部命令的方法:type命令

Linux 系統上交換空間的介紹

學習如何修改你的系統上的交換空間的容量,以及你到底需要多大的交換空間。 當今無論什麼作業系統交換Swap空間是非常常見的。Linux 使用交換空間來增加主機可用的虛擬記憶體。它可以在常規檔案或邏輯捲上使用一個或多個專用交換分割槽或交換檔案。 典型計算機中有兩種基本

Linux系統檢視行動硬碟的使用時間--使用smartmontools

windows系統裡有很多好用的軟體可以檢視硬碟的總使用時長,Linux下也有類似的工具smartmontools。 S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology; often wr

C語言中關於獲取時間的函式,包括如果獲取微妙、毫秒時間

  功 能:將時間格式化,或者說:格式化一個時間字串。我們可以使用strftime()函式將時間格式化為我們想要的格式。   原 型:size_t strftime(char *strDest,size_t maxsize,const char *format,const struct tm *timept

linux系統清理磁碟空間

# 原創作品,轉載請註明出處,謝謝!@楊福星 一、背景: 1、由於linux系統空間是由掛載磁碟得來的,但有時裝系統時掛載/根目錄空間不大,現僅清除使用者下載的大檔案 二、方

十九、Linux系統程式設計-訊號(六)三種不同精度的睡眠sleep、usleep、nanosleep

#include <sys/types.h> #include <sys/stat.h> #include <sys/time.h> #include <fcntl.h> #include <string.h> #include <stdio

獲取Linux系統運行時間

sed 圖片 時間 int 運行時間 info user 分享 linu uptime |sed ‘s/^.*up//‘ |sed ‘s/users.*//g‘|awk ‘{for(i=1;i<NF;++i) printf $i "\t";printf "\n"}‘

linux c獲取系統時間

#include<iostream> #include <stdlib.h> #include <stdio.h> #include <sys/time.h> #include <unistd.h> int main(){ struc

Linux系統date命令的引數及獲取時間戳的方法

date指令相關用法示例 date 用法: date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 直接輸入date date 指定格式顯示時間: date +%Y

Linux系統下date常用命令的引數以及獲取時間戳的方法

date:用於顯示/設定系統的時間或者日期:date 選項 +指定的格式: +:進行格式化輸出 %Y:表示年份 %m:表示月份 %d:表示第幾天 %H:表示小時 %M:表示分鐘 %S:表示

linux c獲取系統啟動時間

sysinfo 函式原型 int sysinfo(struct sysinfo *info); ##獲取系統相關資訊結構體 sysinfo 結構體說明 struct sysinfo {

Linux中 別名、內部命令、外部命令、hash緩存表 系統調用時的優先比較

別名、內部命令、外部命令、hash緩存表 Linux系統中別名、內部命令、外部命令、hash緩存表 優先級優先級比較 在我們平時使用Linux系統執行各種命令時,會發現命令在執行過程中會區分哪個優先執行,哪個其次執行,這裏我們來做個試驗證明一下。 別名:用a

python3 獲取Linux系統信息

www cpu信息 os.path mage mib bytes pri 文件 def 系統信息 import platform platform.uname() platform.architecture() CPU信息 /proc/cpuinfo文件包含了系統

linux系統時間和時區與internet時間同步

linux 時間 時區 同步問題如此圖紅色區域# /usr/sbin/ntpdate time.nist.gov //手動同步時間後,發現與網絡時間還是不不對# vi /etc/sysconfig/clock //發現是new_york,ZONE="America/New_Yo

Inxi:一個功能強大的獲取Linux系統信息的命令行工具

linux查看系統配置Inxi 最初是為控制臺和 IRC(網絡中繼聊天)開發的一個強大且優秀的命令行系統信息腳本。可以使用它獲取用戶的硬件和系統信息,它也用於調試或者社區技術支持工具。使用 Inxi 可以很容易的獲取所有的硬件信息:硬盤、聲卡、顯卡、網卡、CPU 和 RAM 等。同時也能夠獲取大量的操作系統

查看linux系統最早的安裝時間

linux在安裝系統時,每個分區下都會有一個 lost+found,而且這個目錄的創建時間是和該分區創建的時間一樣的。所以如果想知道你的系統是什麽時候安裝的,只需要看這個目錄的創建時間即可。通常情況下,我們分區都會把 /boot 單獨分一個區,所以你只要查看 /boot/lost+found 這個目錄的創建時

獲取本機IP(適用於Linux系統)

tex cat 獲取本機 smo cal network enum print inet6 獲取本機IP(適用於Linux系統) /** * @desc 獲取本機IP(適用於Linux系統) * @return Ip */ public static String getL