2011-05-05 83 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