0
A
回答
4
我通過「交互式」假設你的意思是通過irb
。
像Ruby這樣的高級語言將爲大多數內核系統調用提供不同厚度的包裝。
偶爾這些包裝將會非常薄,如sysread()
和syswrite()
。這些分別大致等同於read(2)
和write(2)
。
其他系統調用將隱藏在較厚的圖層後面,例如socket I/O stuff。我不知道調用UNIXSocket.recv()
是否恰當地稱爲「調用系統調用」。在某種程度上,這正是發生的情況,但是誰知道你和實際的系統調用之間有多少Ruby和C代碼。
然後有一些系統調用根本不在標準的Ruby API中,很可能是因爲它們沒有很大的意義,比如mmap(2)
。這個系統調用全是關於內存的原始指針,你首先通過使用像Ruby這樣的語言選擇避免。有恰好是a third party Ruby mmap module,但它真的不打算給你,你可以從C.挖掘
的syscall()
接口墊在評論中指出所有的力量上面是一個類似的故事:從理論上講,它可以讓你調用任何系統調用內核。但是,如果你不具備處理指針的能力,爲結構等內存準確地存儲數據,那麼進行有用調用的能力將非常有限。
如果你想玩系統調用,學習C.沒有捷徑。
0
Eric Wong在Ruby中創建了一個用於系統級編程的郵件列表。現在它不是非常活躍,但你可以在http://librelist.com/browser/usp.ruby/。
相關問題
- 1. UNIX系統調用列表?
- 2. Unix fork()系統調用
- 3. Unix中的系統調用
- 4. Unix系統調用Objective-C
- 5. Unix系統調用開銷
- 6. Unix選擇系統調用
- 7. 如何在golang中調用Linux/UNIX的系統調用
- 8. 交互式popen()Lua調用
- 9. unix系統調用監視器
- 10. 失敗的「寫入」unix系統調用
- 11. 如何用hypnotoad或morbo調用交互式Perl調試?
- 12. 互斥訪問和系統調用
- 13. 調用Bash交互
- 14. 如何調用pickerView:didSelectRow:inComponent:無用戶交互?
- 15. 系統(「」)調用
- 16. 如何添加/替換系統調用到hp-ux(hp unix)11iv3?
- 17. 不正確地使用系統()調用?
- 18. 調試Java本地交互
- 19. 從Java調用「交互式」Perl腳本
- 20. 從交互式shell調用d代碼
- 21. 蟒蛇,交互式vs腳本調用
- 22. 如何使用寫入系統調用
- 23. 從/ proc/kcore獲取系統調用表中的系統調用地址
- 24. 系統調用使用哪種模式?
- 25. MIPS:系統調用
- 26. 調用C「系統」 ++
- 27. Ptracing系統調用
- 28. 調用android系統
- 29. Pipe()系統調用
- 30. sys_execve系統調用
http://apidock.com/ruby/Kernel/syscall?不知道你想直接與系統調用進行交互。 – Mat