【问题标题】:Getting time elapsed since read blocking自读取阻塞以来经过的时间
【发布时间】:2019-01-27 19:46:32
【问题描述】:

我正在使用管道并通过它们发送数据。虽然读取被阻塞,直到孩子的写入完成,有没有办法在读取阻塞期间获得时间?我使用clock()来获取时间。

谢谢

【问题讨论】:

  • 什么编程语言? stackoverflow.com/help/how-to-ask
  • c语言......
  • 我想了想解决方案是显而易见的,所以我提出了算法,而不是代码作为解决方案。
  • 好吧,突然神奇地工作了。
  • @test:所以你的“解决方案”现在神奇地起作用了,“我的答案”被否决了。那么:“解决方案”是什么?

标签: c linux pipe


【解决方案1】:

如果你有这样的作家

while (1) {
  write_to_pipe(...);
}

和喜欢的读者

while (1) {
  read_from_pipe(..);
}

为什么不简单地在调用 read_from_pipe() 之前获取时间,在从管道读取之后获取另一个时间,建立差异?也许您甚至可以通过在至少进行非阻塞读取后减去最小差异来进行校准...

但是您应该注意,您正在测量经过的时间,其中可能包含除阻塞时间之外的其他组件。

【讨论】:

  • 谁能解释一下为什么这个答案是-1?
猜你喜欢
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多