簡體   English   中英

從 cmsg 獲取時間戳可以為 NULL 嗎?

[英]Get time stamp from cmsg can be NULL?

我查看此代碼https://elixir.bootlin.com/linux/v4.6.7/source/Documentation/networking/timestamping/timestamping.c#L181

此代碼嘗試使用struct timespec *stamp = (struct timespec *)CMSG_DATA(cmsg);打印數據包的時間戳

如果這是UDP數據包。 CMSG_DATA(cmsg)有什么方法可以返回 NULL?

如果您查看CMSG_DATA的定義,您會看到

#define CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))))

這為cmsg添加了一個偏移量。 除非您設法將cmsg輸入到添加該偏移量后評估為NULL的宏中,否則結果永遠不會出現NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM