【问题标题】:Is there a C function which calculates process elapsed time?是否有计算过程经过时间的C函数?
【发布时间】:2020-04-12 10:11:08
【问题描述】:

我正在尝试使用 C 和 Ubuntu 为我的班级学习操作系统。我找不到有关计算流程经过时间的任何信息?另外,我应该通过在内核中编写新的系统调用来做到这一点。有谁能够帮我?我什至无法尝试代码块,因为我在网上看了好几个小时。谢谢。

【问题讨论】:

  • 终端可以使用time吗?示例:time main.exe
  • 不可能知道如何为您提供帮助,因为您的问题并不具体。你知道如何添加系统调用吗?如果没有,这就是你应该具体问的问题。如果是这样,你应该这么说。 (有很多关于如何向 Linux 内核添加系统调用的教程。使用搜索引擎。)
  • 是的,我知道如何添加系统调用。我只是不知道也找不到如何计算正在运行的进程的经过时间......
  • 在进程运行前后检查time()并取差值。
  • 你在程序开始时调用time(),将结果保存在一个变量中。当您想要经过的时间时,再次调用time(),并从中减去原始变量。

标签: c process operating-system elapsedtime


【解决方案1】:

您可以使用 clock() 函数。它在 time.h 中可用。 但是由于您使用的是 Ubuntu,因此只需在终端中使用时间。

g++ "yourfile.cpp" -o file
time file

【讨论】:

  • 不能直接执行.cpp文件。
  • @Clifford 是的,你是对的。 g++ "yourfile.cpp" -o file ./file 执行 time file 到时间。这应该可以工作。
  • 我相信 OP 应该写一个内核模块,而不是一个 shell 脚本。
  • 另外,尽管它的名字,clock() 返回处理器时间,而不是挂钟时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多