2011-05-05 58 views
0

我有一个类型为“PID,调用时间,系统调用”的记录的文件,并且由不同进程产生的调用是交错的。现在,我正在编写一个模拟器来重播系统调用,并且需要通过说PID 1发出的呼叫由与PID 2发出的呼叫不同的过程生成。此外,同一个过程必须使PID 1发出的所有呼叫并以与跟踪文件中显示的顺序相同的顺序。会有一些帮助gratefull。谢谢你...通过c程序模拟文件系统跟踪

+0

当然,我们不是在这里为你写代码,但如果我在你的位置,我会开始通过写一个main()函数,充实它,并从那里开始。 – 2011-05-05 07:56:08

+0

@ Bill我明白,没有人会为我写代码,我不期待。这里的逻辑并不像看起来那么简单。 Main()读取文件跟踪文件...检查跟踪的PID并使线程重放trace..control返回到main()... main()再次读取跟踪文件,并且如果它具有相同的PID和以前一样,假设有同一个线程进行该呼叫,但它不再存在。 – 2011-05-06 04:08:18

回答

0

一个简单的方法是与一个PID成员建立一个链表。对于每次调用,您都可以遍历列表(并且如果未找到PID,则添加一个节点),并使每个节点都保存一个文件句柄或可以为数据提供进程的内容。 如果你的PID不是“随机”数字,而是1,2,3,4等......你总是可以用一个数组(指针)做同样的事情,以避免遍历列表所花费的时间。 不知道这对你是否足够,但你再也没有给出太多细节......

+0

谢谢。我尝试后会回来 – 2011-05-06 04:09:37