【问题标题】:Emulating file system traces by a c program通过 c 程序模拟文件系统跟踪
【发布时间】:2011-05-05 05:12:47
【问题描述】:

我有一个文件,其中包含“PID、调用时间、系统调用”类型的记录,并且不同进程的调用是交错的。现在,我正在编写一个模拟器来重放系统调用,并且需要一个由 PID 1 进行的调用,由一个不同于 PID 2 的调用的进程进行。此外,同一个进程必须进行 PID 1 的所有调用并且与出现在跟踪文件中的顺序相同。将不胜感激一些帮助。谢谢...

【问题讨论】:

  • 当然,我们不是来为您编写代码的,但是如果我处于您的位置,我会首先编写一个 main() 函数,充实它,然后从那里开始。
  • @Bill 我知道没有人会为我编写代码,我并不期待这样。这里的逻辑并不像看起来那么简单。 Main() 读取文件跟踪文件...检查跟踪的 PID 并使线程重播该跟踪..控制回到 main()...main() 再次读取跟踪文件,如果它是相同的 PID和以前一样,假设同一个线程进行该调用,但它不再存在。

标签: c process filesystems


【解决方案1】:

一种简单的方法是创建一个包含一个 PID 成员的链表。对于每个调用,您可以遍历列表(如果未找到 PID,则添加一个节点)并使每个节点保存一个文件句柄或可以为进程提供数据的东西。 如果您的 PID 不是“随机”数字,而是 1、2、3、4 等……您始终可以对数组(指针)执行相同的操作,以避免遍历列表所需的时间。 不确定这对你来说是否足够,但你并没有真正提供太多细节......

【讨论】:

  • 谢谢。我一试就会回来
猜你喜欢
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
相关资源
最近更新 更多