2009-11-02 43 views
1

我正在學習操作系統課程,我們在Linux(Red hat 8.0)中工作。我試圖實現一個文件打開,關閉跟蹤器,將爲每個進程保存它打開和關閉的文件的歷史記錄。我期望sys_open,close也接受進程id,並且我可以使用它來訪問啓動調用並更新它的進程的歷史記錄(使sysopen的更新部分,關閉函數)。但是,這些函數不接受pid作爲參數,所以我在關於如何將啓動/關閉文件關聯到啓動它的進程方面有些遺憾。我唯一的猜測是,因爲在任何時候只有一個活動進程,它的元數據必須以某種方式是全局的,但我不知道在哪裏或如何找到它。任何意見,將不勝感激。如何檢查啓動了哪個進程sys_open

回答

3

您是否打算在內核空間中執行此操作?鑑於您直接查看位於內核空間IIRC中的sys_open等,您可以使用當前指針查看進程的PID(current->pid)。

+0

我想我誤解了他的問題。不知何故,我得到了他想讓它脫離內核的想法。 – 2009-11-02 14:34:24

+0

@tinkertim - 或者我誤解了......我們拭目以待:) – abyx 2009-11-02 14:35:03

+0

不,你是對的,我希望這是在內核空間。謝謝。 – 2009-11-02 16:34:54

相關問題