1. 不是。glibc 是一種 C 標準庫的實現(但 glibc 裡邊不僅僅有 C 標準庫的內容,還有 POSIX 的內容,以及一些其它的東西)。除此之外還有不少針對嵌入式設備開發的 C 庫,如 musl、uclibc 以及 Android 的 bionic。「Linux操作系統的API」是個很模糊的概念。Linux 的 C 庫是 POSIX 標準的一部分,不是內核 API 的一部分,不是 X Window、Wayland 或者其它任何桌面環境的標準的一部分。2. 當然不是。不然你怎麼寫內核模塊?除此之外基本上正常的項目都會用 C 標準庫,因為它是 C 語言的標準運行時嘛。
3. 看 C 語言教材、POSIX 或者 glibc 文檔。
4. 是。內核 API 需要使用特別的方式(系統調用,x86_64 上是 syscall 指令,x86 上是 int $0x80 中斷)來調用。C 標準庫使用的是調用 C 語言函數的調用約定。
1、glibc就是GNU C Library. glibc是一種C函數庫,是程序運行時使用到的一些API集合。目前最主要的應用是配合Linux內核,成為GNU/Linux操作系統一個重要的組成部分。Linux man中位於section 3.
2、不是. Linux C可以用到glibc函數(用戶空間),也可以用到system call函數(內核空間, 特殊許可權). 如Linux諸多命令的實現,cp、pwd、who、stty等等,socket編程(參看Unix/Linux編程實踐教程、APUE) system call在Linux man中位於sectino 2.