Linux時間處理函數

gettimeofday 是 Linux 系統中一個用于獲取當前時間的系統調用函數。它能夠獲取從 Unix 紀元(1970年1月1日 00:00:00 UTC)到當前時刻的秒數和微秒數。

函數原型

#include <sys/time.h>int gettimeofday(struct timeval *tv, struct timezone *tz);

參數說明

  • tv: 指向?struct timeval?結構體的指針,用于存儲獲取到的時間。
  • tz: 指向?struct timezone?結構體的指針,用于存儲時區信息。注意:在現代 Linux 系統中,這個參數通常被忽略(應設為?NULL),因為內核不再使用它。

數據結構體

struct timeval {time_t      tv_sec;     /* 秒(從 Unix 紀元開始) */suseconds_t tv_usec;    /* 微秒(0 到 999,999) */
};struct timezone {int tz_minuteswest;     /* 格林威治以西的分鐘數 */int tz_dsttime;         /* 夏令時標志 */
};

返回值

  • 成功時返回 0。
  • 失敗時返回 -1,并設置?errno?錯誤碼。

使用示例

#include <stdio.h>
#include <sys/time.h>int main() {struct timeval tv;if (gettimeofday(&tv, NULL) == 0) {printf("秒數: %ld\n", tv.tv_sec);printf("微秒: %ld\n", tv.tv_usec);} else {perror("gettimeofday");return 1;}return 0;
}

注意事項

  1. 精度gettimeofday?提供微秒級精度,但實際精度取決于系統硬件和內核實現。
  2. 時區參數:現代系統中,tz?參數應始終設為?NULL
  3. 線程安全gettimeofday?是線程安全的。
  4. 已廢棄:雖然?gettimeofday?仍在廣泛使用,但 POSIX 標準推薦使用更現代的?clock_gettime()?函數,它提供了更高的精度(納秒級)和更多的時間源選擇(如?CLOCK_REALTIME,?CLOCK_MONOTONIC?等)。

推薦替代方案

#include <time.h>int clock_gettime(clockid_t clk_id, struct timespec *tp);

clock_gettime 使用 struct timespec 結構體,提供納秒級精度:

struct timespec {time_t   tv_sec;        /* 秒 */long     tv_nsec;       /* 納秒 */
};

總的來說,gettimeofday 是一個經典且廣泛使用的函數,但在新代碼中建議優先考慮 clock_gettime

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/97345.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97345.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97345.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 面試高頻考點 力扣 34. 在排序數組中查找元素的第一個和最后一個位置 二分查找左右端點 題解 每日一題

文章目錄二分查找進階&#xff0c;精準定位左右邊界題目描述先踩坑&#xff1a;樸素二分為什么搞不定重復元素&#xff1f;第一步&#xff1a;找左邊界——如何定位“第一個target”&#xff1f;第二步&#xff1a;找右邊界——如何定位“最后一個target”&#xff1f;完整代碼…

在word以及latex中引用zotero中的參考文獻

背景 如何在word以及latex中引用zotero中的參考文獻 歷史參考 恢復Zotero軟件內的誤刪條目數據/文獻-CSDN博客使用zotero保存 CNKI知網文章時發生錯誤。改為嘗試用 Save as Webpage 保存。-CSDN博客 word 在word中引用zotero中的參考文獻 打開word&#xff0c;點擊引用 經典…

docker 部署Skywalking

創建網絡 docker network create skywalking-network docker compose 安裝SkyWalking docker-compose.yaml 文件 version: "3" services:# SkyWalking OAP server with Elasticsearch storageskywalking-oap:image: apache/skywalking-oap-server:8.9.0container…

動態UI的秘訣:React中的條件渲染

動態UI的秘訣&#xff1a;React中的條件渲染 作者&#xff1a;碼力無邊各位React探險家&#xff0c;歡迎回到我們的《React奇妙之旅》&#xff01;我是你們的老朋友碼力無邊。在之前的旅程中&#xff0c;我們已經學會了如何創建組件、傳遞數據&#xff08;Props&#xff09;、管…

ubuntu掛載外接硬盤

查看找到硬盤sudo fdisk -l例如&#xff1a;名字為&#xff1a;/dev/sda創建掛載點sudo mkdir -p /2TSSD手動掛載&#xff08;單次生效&#xff0c;關機會失效&#xff09;sudo mount /dev/sda1 /2TSSD開機自動掛載&#xff08;永遠生效&#xff0c;關機會失效&#xff09;S1&a…

數學思想 | 數學思維過程對象封裝

注&#xff1a;本文為 “數學思維過程對象封裝” 相關譯文。 英文引文&#xff0c;機翻未校。 略作重排&#xff0c;如有內容異常&#xff0c;請看原文。 What is the object of the encapsulation of a process? 過程封裝的對象是什么&#xff1f; David Tall#, Michael Th…

常見視頻封裝格式對比

一、核心概念&#xff1a;封裝格式 vs 編碼格式 編碼格式 (Codec): 例如 H.264, H.265 (HEVC), AV1, VP9。它負責對原始視頻和音頻數據進行壓縮&#xff0c;是決定視頻體積和清晰度的關鍵。封裝格式 (Container): 例如 MP4, MKV, AVI。它負責將已經壓縮好的視頻、音頻、字幕等打…

Java實現PDF表格轉換為CSV

在很多企業辦公和數據分析的場景中&#xff0c;PDF 中常常存放著報表、清單或統計數據。相比 PDF&#xff0c;CSV 文件 更易于在 Excel 或數據庫中進行進一步處理。因此&#xff0c;我們常常需要一種方式&#xff0c;將 PDF 中的表格數據批量抽取并導出為 CSV 文件。 本文將介…

具有類人先驗知識的 Affordance-覺察機器人靈巧抓取

25年8月來自武漢大學、阿里達摩院、湖畔研究中心、浙大和清華的論文“Towards Affordance-Aware Robotic Dexterous Grasping with Human-like Priors”。 能夠泛化抓取目標的靈巧手是開發通用具身人工智能的基礎。然而&#xff0c;之前的方法僅僅關注低級抓取穩定性指標&#…

項目管理的關鍵成功因素

項目管理的關鍵成功因素包括&#xff1a;目標明確、科學規劃、有效溝通、資源保障、風險管理、團隊協作、持續監控與總結改進。目標明確保證方向不偏移、科學規劃確保執行有章可循、有效溝通減少誤解與沖突、資源保障提供堅實支撐、風險管理幫助預防問題、團隊協作提升整體效率…

[光學原理與應用-338]:ZEMAX - Documents\Zemax\Samples

Documents\Zemax\Samples 是 Zemax OpticStudio 軟件自帶的樣例文件目錄&#xff0c;包含大量預設的光學設計案例&#xff0c;涵蓋鏡頭設計、照明系統、公差分析、非序列光學等多個領域。這些樣例是學習軟件功能、驗證設計方法和快速啟動項目的寶貴資源。以下是該目錄的詳細解析…

el-table合并列實例

想要實現效果&#xff1a;目前接口返回數據data:[{companyCode: "NXKYS",companyName:1123,costContractId:1123,costContractName:1123,createBy:1123,details:[{brand:1123,contractItemName:1123,modelSpec:1123,projectItemId:1123,requestQty:1123,transactionZ…

虛假 TradingView Facebook 廣告在全球傳播 Android 間諜軟件

一項快速發展的惡意廣告活動最初通過 Meta 的廣告網絡針對 Windows 用戶&#xff0c;現已將其范圍擴展到 Android 設備&#xff0c;推廣偽裝成合法交易應用程序的 Brokewell 惡意軟件的高級版本。 Bitdefender Labs 警告稱&#xff0c;此次移動攻擊活動目前已在全球范圍內展開…

Android系統框架知識系列(十九):Android安全架構深度剖析 - 從內核到應用的全棧防護

?關鍵詞?&#xff1a;安全啟動鏈、應用沙箱、SELinux、硬件安全模塊、權限控制、零信任架構一、Android安全架構的基本概念與背景1. 移動安全環境的特殊性Android作為全球最大的移動操作系統&#xff0c;面臨著獨特的安全挑戰&#xff1a;?移動設備的安全威脅維度?&#xf…

智能消防栓悶蓋終端:讓城市消防管理更智慧高效

然而您是否知道&#xff0c;這些傳統的消防栓常常面臨非法開啟、人為破壞、水壓不足等管理難題&#xff1f;當火災真正發生時&#xff0c;它們能否可靠地提供"救命水"&#xff1f;如今&#xff0c;隨著智能消防栓悶蓋終端的出現&#xff0c;這一切正在悄然改變。 智…

【系統架構設計(一)】系統工程與信息系統基礎上:系統工程基礎概念

文章目錄一、系統工程的基本概念二、系統工程方法論1、霍爾三維結構&#xff1a;硬科學2、切克蘭德方法&#xff1a;軟科學思維3、其他三、系統工程生命周期管理1、生命周期階段劃分2、生命周期方法論系統工程與信息系統基礎為復雜系統設計提供從思維方法到具體技術的全方位指導…

[p2p-Magnet] 隊列與處理器 | DHT路由表

第6章&#xff1a;隊列與處理器 在第5章&#xff1a;分類器中&#xff0c;我們了解了系統如何分析原始種子數據。但當系統突然發現數百萬新種子時&#xff0c;如何高效處理這些海量任務&#xff1f;這就是隊列與處理器系統的職責所在。 核心概念 任務隊列 功能定位&#xf…

Spring JDBC 源碼初探:異常處理體系

一、Spring JDBC 異常體系簡介 當我們使用 Spring JDBC 進行數據訪問時&#xff0c;大多數人關注的是 JdbcTemplate 如何簡化數據庫操作&#xff0c;卻很少有人去深入理解異常體系。事實上&#xff0c;異常不僅僅是錯誤提示&#xff0c;它是系統健壯性、可維護性的重要一環。JD…

如何提高微型導軌的生產效率?

在精密機械制造領域&#xff0c;每一個細微的元件都可能成為決定產品性能和品質的關鍵因素。而微型導軌正是體型小、高精度優勢&#xff0c;在精密制造領域得到廣泛應用&#xff0c;它高效支撐著現代工業的生產方式和效率。那么&#xff0c;如何提高微型導軌的生產效率呢&#…

輕量xlsx讀取庫xlsx_drone的編譯與測試

這個庫是在看其他網頁時&#xff0c;作為和功能豐富的xlsxio庫的對比來的&#xff0c;按照xlsx_drone github頁面介紹&#xff0c; 特征 不使用任何外部應用程序來解析它們。注重速度而不是功能。簡單的接口。UTF-8 支持。 安裝 直接將 src 和 ext 文件夾復制并粘貼到項目根文…