- 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/
我尝试创建一个代码来生成时间戳。我发现了两种不同的结构,但不清楚有什么区别?谁能帮我理解这两种结构有什么区别? struct timespec 和 timespec now? 最佳答案 以下结构: s
我读过很多关于这个的帖子,我可以告诉你(我读过的每篇帖子都有这组假设,所以让我们早点摆脱它): 我已经适本地包含了 time.h 我已经指定了 POSIX 常量和 -std=gnu99 代码: #if
这个问题在这里已经有了答案: Visual Studio error with 'timespec' structure (5 个答案) 关闭 6 年前。 使用 Visual Studio 2015
我看过this解决方案,但我遇到了同样的错误。对于一个类,我们不得不切换到 c99 编译器而不是 gnu,但现在 timespec 似乎被破坏了。除了“timespec 的存储大小未知”之外,我还收到
在 posix 上,可以使用 timespec 来计算准确的时间长度(如秒和毫秒)。不幸的是,我需要使用 Visual Studio 编译器迁移到 Windows。 VS time.h 库没有声明 t
新用户,如果这个解释不够清楚,我很抱歉...我在创建要在多个源文件之间修改/使用的 timespec 变量时遇到了问题。我的程序旨在确定从我的初始程序中执行另一个程序所需的时间,因此我需要在两个源文件
在 posix 上,可以使用 timespec 来计算准确的时间长度(如秒和毫秒)。不幸的是,我需要使用 Visual Studio 编译器迁移到 Windows。 VS time.h 库没有声明 t
比较两个 timespec 值以查看哪个先发生的最佳方法是什么? 下面有没有问题? bool BThenA(timespec a, timespec b) { //Returns true i
在我的项目中,我使用 struct timespec 如下 struct timespec start, end; clock_gettime(CLOCK_REALTIME,&start); /* D
在累积 struct timespec 增量的程序中,我正在执行以下逻辑: struct timespec accu, start, stop; for (...) { // record s
struct timeval 和 struct timespec 除了精度不同之外还有什么区别?如果我需要的精度低于 µs(例如,毫秒),我为什么要使用一个而不是另一个? 在我的编译器上(ARM 的
以下是重现该问题的一个最小示例。对我来说,这段代码看起来很无辜。我怀疑 struct timespc 背后有一些魔法;但是,我找不到任何可以解释它崩溃原因的内容。 #include #include
我希望格式化 ns 和 ns_old,以便我验证是否遵守设置的 inter_arrival(即,如果我给 inter_arrival =10,它应该正确地反射(reflect)在 ns_diff 中)
我有一个 struct timespec我需要转换为 struct timeval 的对象用于 lutimes(...) . 我尝试了以下操作,但是 lutimes()提示。 const struct
我只是在学习如何使用 clock_getres(网络上几乎没有任何关于此的好文档)。我的代码如下所示: timespec now; clock_getres(CLOCK_REALTIME,&now);
myheader.h #ifndef _MYHEAD_ #define _MYHEAD_ #include #include #include #include #include #incl
我正在从 Linux 内核读取(触摸)事件。我想记录这些事件的时间,但我不知道这些事件是作为 timespec 还是 timeval 传递的。谁能指出我正确的方向? 示例代码(从缓冲区读取事件后) s
我正在将我的应用程序从 unix 移植到 windows,但我遇到了困难。在我的应用程序中,我需要找到以微秒为单位的时间(由于它是高精度应用程序,因此整个应用程序在很大程度上依赖于它)。 以前我使用的
这个答案很难找到,我觉得很奇怪。我已经包含了 time.h 和 ctime,但是 vc9 仍然提示未定义的类型“timespec”。我在这里、MSDN 和网络上进行了搜索(即使存在确切的编译器错误),
我正在使用 struct timespec 结构,这里是: struct timespec { time_t tv_sec; /* Seconds
我是一名优秀的程序员,十分优秀!