我在做兩個系統調用(linux 3.2)。我創建了這兩個系統調用,並且編譯了內核。這兩個系統調用需要在文件上寫入和讀取。我將修改兩個系統調用,讀取和寫入以讀取此文件。所以這個文件需要被這四個系統調用訪問(讀,寫和我的兩個系統調用)。我的問題是,我在哪裏以及如何創建該文件,以及如何訪問並修改它。我只會將這個文件用於這些系統調用。系統調用修改
系統調用修改
回答
在Linux內核中讀取或寫入文件被認爲是「不好的」。
添加一個系統調用,在列表中添加/刪除一個名稱(不一定是Linux內核List,但這也不是一個可怕的想法 - 可能是一個數組等),然後使用用戶模式程序從文件中設置列表中的名稱。
接下來,我認爲將一個讀/寫系統調用綁定到一個分區並不那麼容易。在open
可能更容易處理?
謝謝你的回答。我同意,處理開放會更容易,但我的老師指定閱讀和寫作。我的疑問是,我把這個文件放在哪裏,以及如何從我的系統調用中訪問這個文件。 – 2013-03-06 13:16:26
你不應該。如果您的老師要求您這樣做,那麼他會要求您以FAR的方式從事Linux事業。這不是你如何解決這些問題。如果您從系統調用中調用其他系統調用(或支持此類系統調用的內部函數),遲早會導致某種類型的死鎖。 – 2013-03-06 14:06:32
這實際上是一個非常好的教育問題 - 在這裏的答案顯示出它在哪裏/爲什麼是一個難以置信的困難和危險的事情。但是,如果您有一個用戶空間守護進程等待事件/信號/ IO來指示它應該對內核進行讀/寫操作,則「解決方案」很容易。這可以像/ proc條目一樣簡單,只需要用戶空間進程讀/ polls/select的某個計數/信號量。
解決這個問題是理解任何/許多解決方案之間權衡的良好實踐。
- 1. 修改exit.c系統調用代碼
- 2. 爲PHP系統()調用修改$ PATH
- 3. 修改器系統C#
- 4. 修改JRE系統庫
- 5. Drupal修改登錄系統
- 6. 剪輯修改系統
- 7. ios8修改系統鍵盤
- 8. 修改SharePoint系統文件
- 9. 更改叉()系統調用
- 10. 修改設置系統應用程序
- 11. 通過/ proc修改系統調用行爲?
- 12. 由系統動態客戶關係管理系統2015修改
- 13. 系統(「」)調用
- 14. 系統()在PHP中修改命令
- 15. 系統修改列表元素
- 16. 在PyQt4中修改系統風格
- 17. 「系統根」鑰匙串不能修改
- 18. 檢測文件更改 - 修補系統
- 19. 保護文件免受系統修改
- 20. Vfork系統調用
- 21. sigaction系統調用
- 22. Pipe()系統調用
- 23. python系統調用
- 24. fork系統調用
- 25. sys_execve系統調用
- 26. MIPS:系統調用
- 27. Ptracing系統調用
- 28. 調用C「系統」 ++
- 29. 系統調用write
- 30. indir系統調用
那麼,你想讀取和寫入系統調用中的文件? – 2013-03-06 00:25:47
是的,我的系統調用的任務是將一個或分區(標識分區的字符串)添加到文件中。當系統調用讀/寫被調用時,他們將驗證分區是否被阻塞(如果分區在文件中),如果分區被阻塞,則不應執行讀/寫。 – 2013-03-06 02:30:49