該函數的文檔中open()說明以下內容:open()系統調用將打開由路徑名指定的文件。我認為這open()是系統調用的包裝函數,而不是系統調用本身。還是系統調用的包裝函數也稱為系統調用?
2 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
簡短答案-是的。
長答案-這取決于。系統調用是一種編程方式,計算機程序從該程序中向其執行操作系統的內核請求服務。這可能包括與硬件相關的服務(例如,訪問硬盤驅動器),創建和執行新進程以及與諸如進程調度之類的集成內核服務進行通信。系統調用提供了進程與操作系統之間的基本接口。
系統調用未定義為特定功能。相反,它們是請求服務或換句話說就是OS API。語言標準提供的標準功能幾乎總是對用戶隱藏它們。并且該標準是在不同操作系統的編譯器中實現的。

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
另一個答案是正確的,但我也想補充一點,對我來說,解釋為什么將open視為系統調用的最簡單方法是,因為不能保證在所有OS上syscall都是相同的。例如,如果我們想象一個打開了syscall 1的操作系統,那么另一個操作系統可能會使用syscall 1進行寫操作(就像linux x64一樣),因此,為了兼容起見,open()
添加了這樣的功能,其中OS將open()
作為調用提供到適當的syscall值,并且程序員不必擔心在不同操作系統之間調用正確的syscall號碼
- 2 回答
- 0 關注
- 466 瀏覽
添加回答
舉報
0/150
提交
取消