- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 struct timespec
我需要转换为 struct timeval
的对象用于 lutimes(...)
.
我尝试了以下操作,但是 lutimes()
提示。
const struct timespec ts; // originally provided as function parameter from FUSE
struct timeval tv;
tv.tv_sec = ts.tv_sec;
tv.tv_usec = ts.tv_nsec / 1000;
lutimes(path, tv); // returns -1; errno=EINVAL
现在EINVAL
来自 lutimes
表示 usec 组件在 0 <= tv_usec < 1000000
之外, 表示从 timespec
的转换出错。 [source]
如何从 timespec
正确转换至 timeval
?
使用 touch
进行更彻底的调试命令,显示 timespec
包含 tv_sec = 0
和 tv_nsec > 1000000000
,当未指定具体日期时应使用当前时间。
这是为什么?处理此问题的正确方法是什么?
最佳答案
首先,我将澄清我最初从问题中不清楚的地方:这是 fuse 文件系统中 utimens
操作的实现,问题是有时 tv_nsec
字段的值大于或等于 1,000,000,000。
我的猜测是它是两个特殊值之一:UTIME_NOW
或 UTIME_OMIT
。
fuse 文档指向 utimensat
手册页,其中对这些特殊值进行了解释: http://man7.org/linux/man-pages/man2/utimensat.2.html
同时检查linux内核中的nsec_valid
函数:
https://elixir.free-electrons.com/linux/v4.15.2/source/fs/utimes.c#L40
关于c++ - 如何正确地将 timespec 转换为 timeval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48692979/
我如何知道从 1970 年 1 月 1 日 00:00:00 到现在使用 timeval 之间的秒数和微秒数?谢谢。 struct timeval { long tv_sec; /*seconds
我想将 timeval 结构从秒转换为纳秒,实现此目的的最佳算法是什么? 最佳答案 我建议这样做: uint64_t nanosec(struct timeval t) { /* Calculate
我在将 time_t 转换为 struct timeval 时遇到问题。我需要从 time_t 值填充 tv_usec 和 tv_sec 值。 为了填充tv_sec和tv_usec,我们需要调用get
我正在尝试打印 struct timeval 变量中的值,如下所示: int main() { struct timeval *cur; do_gettimeofday(cur)
我正在尝试将这两个组件从时间结构中拉出并将它们放入字符串中。 我运气不太好。我尝试先将其转换为长整数,然后再转换为字符串。我需要最有效的方法来执行此操作。 有什么想法吗?我不想首先转换为另一个数据结构
我需要使用两个 integer 参数 p1 和 p2 来表示 timeval 结构。我已将 tv_sec 复制到 p1 并将 tv_usec 复制到 p2。在 32 位 (centos) 中 size
通过下面的代码,我可以获得以毫秒为单位的当前时间。现在我想将毫秒添加到系统时间。有什么提示吗? #include #include int main (int argc, char** argv)
如何将 timeval 转换为 time_t?我正在尝试转换:umtp->ut_tv 到 time_t 这样我就可以使用 difftime(a,b)。 struct { int32_t tv_s
struct timeval 和 struct timespec 除了精度不同之外还有什么区别?如果我需要的精度低于 µs(例如,毫秒),我为什么要使用一个而不是另一个? 在我的编译器上(ARM 的
我希望将 timeval 字段附加到我的自定义数据包 header 中。面临类型转换的问题。 标题中我的自定义字段 struct pkthdr { uint64_t sec; uint
我试图查看选择函数监视文件所花费的时间,但是当我尝试打印它时,我得到一个很长的数字。这是代码: struct timeval to; to.tv_usec=25; nfds=select(maxfds
我正在使用 timeval 结构来获取当前系统时间。通常如果我这样声明: timeval curtime; 它正在工作。但是我看到一些代码,人们将其声明为: struct timeval curtim
我有一个 struct timespec我需要转换为 struct timeval 的对象用于 lutimes(...) . 我尝试了以下操作,但是 lutimes()提示。 const struct
我在下面有一个片段 - 我已经以多种方式调整了我的 tv_usec,但是我一直坐在 select() 循环中几乎整整 10 秒,无论tv_usec 的设置。 char buffer[512];
我正在使用 timersub(struct timeval *a, struct timeval *b, struct timeval *res) 来按时进行操作。而我要做的是,用一个较高的值减去一个
我搜索了一些问题 using time.h获得random种子 initialization .特别是在我的例子中,我想放置 time在主函数之外。 根据评论我做了一些修改。在 include as
我在这个程序中有一个错误,我不断地回到这两个函数,但它们对我来说是正确的。这里有什么问题吗? long visual_time_get_msec(VisTime *time_) { visua
我正在测试是否可以使用 gettimeofday() 来衡量一段代码的性能。 #include #include #include int main() { struct timeval *
我正在从 Linux 内核读取(触摸)事件。我想记录这些事件的时间,但我不知道这些事件是作为 timespec 还是 timeval 传递的。谁能指出我正确的方向? 示例代码(从缓冲区读取事件后) s
看完this article关于运行时间,我写了一个简单的代码来计算一个循环的执行时间: #include #include int main (int argc, char** argv) {
我是一名优秀的程序员,十分优秀!