|
函數庫調用
|
系統調用 |
| 在所有的ANSI C編譯器版本中,C庫函數是相同的 | 各個操作系統的系統調用是不同的 |
| 它調用函數庫中的一段程序(或函數) | 它調用系統內核的服務 |
| 與用戶程序相聯系 | 是操作系統的一個入口點 |
| 在用戶地址空間執行 | 在內核地址空間執行 |
| 它的運行時間屬於“用戶時間” | 它的運行時間屬於“系統時間” |
| 屬於過程調用,調用開銷較小 | 需要在用戶空間和內核上下文環境間切換,開銷較大 |
| 在C函數庫libc中有大約300個函數 | 在UNIX中大約有90個系統調用 |
| 典型的C函數庫調用:system fprintf malloc | 典型的系統調用:chdir fork write brk; |
