1. 程式人生 > >筆試題:簡答:系統呼叫與庫函式的區別

筆試題:簡答:系統呼叫與庫函式的區別

系統呼叫:執行在使用者空間應用程式作業系統核心請求某些服務的呼叫過程。 系統呼叫提供了使用者程式與作業系統之間的介面。

函式庫呼叫是語言或應用程式的一部分,而系統呼叫是作業系統的一部分。

庫函式是語言本身的一部分,而系統函式是核心提供給應用程式的介面,屬於系統的一部分。

1.系統呼叫是為了方便應用使用作業系統的介面,而庫函式是為了方便人們編寫應用程式而引出的,比如你自己編寫一個函式其實也可以說就是一個庫函式
2.系統呼叫可以理解為核心提供給我們在使用者態用的介面函式,可以認為是某種核心的庫函式。
3.read就是系統呼叫,而fread就是C標準庫函式.

區別:

函式庫呼叫

系統呼叫

平臺移植性好

依賴於核心,不保證移植性

呼叫函式庫中的一段程式(或函式)

呼叫系統核心的服務

一個普通功能函式的呼叫

是作業系統的一個入口點

使用者空間執行

核心空間執行

它的執行時間屬於使用者時間

它的執行時間屬於系統時間

屬於過程呼叫,呼叫開銷較小

在使用者空間和核心上下文環境間切換,開銷較大

庫函式數量較多

UNIX中大約有90個系統呼叫,較少

典型的C函式庫呼叫:printf scanf malloc 

典型的系統呼叫:fork open write