C标准函数库 |
---|
一般 |
---|
- 数据类型
- 字符类型
- 字符串
- 数学
- 文件输入/输出
- 日期/时间
- 本地化
- 内存分配
- 过程控制
- 信号
- 替代标记
|
杂项 |
---|
<assert.h> <errno.h> <setjmp.h> <stdarg.h>
|
|
C 標準函式庫(C standard library,缩写:libc)是在C語言程式設計中,所有符合標準的头文件(header file)的集合,以及常用的函式庫實作程序(如 I/O 輸入輸出和字串控制)。不像 COBOL、Fortran 和 PL/I等程式語言,在 C 語言的工作任務裡不會包含嵌入的關鍵字,所以幾乎所有的 C 語言程式都是由標準函式庫的函式來建立的。
設計
每一個函式的名稱與特性會被寫成一個電腦檔案,這個檔案就稱為標頭檔案,但是實際的函式實作是被分存到函式庫檔案裡。標頭檔的命名和領域是很常見的,但是函式庫的組織架構也會因為不同的編譯器而有所不同。標準函式庫通常會隨附在編譯器上。因為 C 編譯器常會提供一些額外的非 ANSI C 函式功能,所以某個隨附在特定編譯器上的標準函式庫,對其他不同的編譯器來說,是不相容的。
設計品質
大多数 C 標準函式庫設計得很好。有些少部分會為了商業優勢和利益,把某些舊函式視同錯誤或提出警告。字串輸入函式 gets()
及 scanf()
讀取字串輸入的使用是很多緩衝區溢位的原因,大多数的程式設計指南會建議避免使用。另一個較為奇特的函式是 strtok()
,它原本是作為早期的词法分析用途,但是它非常容易出錯(fragile),而且很難使用。
历史沿革
ANSI C共包括15個標頭檔。1995年,Normative Addendum 1 (NA1)批准了3个头文件(iso646.h
、wchar.h
和wctype.h
)增加到C标准函数库中。C99标准增加了6个头文件(complex.h
、fenv.h
、inttypes.h
、stdbool.h
、stdint.h
和tgmath.h
)。C11标准中又新增了5个头文件(stdalign.h
、stdatomic.h
、stdnoreturn.h
、threads.h
和uchar.h
)。至此,C标准函数库共有29个头文件:
参考文献
外部連結
- The C Standard Library:A detailed description of the header files
- The C Library Reference Guide
- Microsoft C Run-Time Libraries(页面存档备份,存于互联网档案馆) on MSDN
- Coding Programmer Page(页面存档备份,存于互联网档案馆) [Coding Programmer Page / Library Reference and Examples] (english) ]
参见
软件主题
计算机程序设计主题
|
---|
| | | 特性 | |
---|
| 函式庫 | |
---|
| 編譯器 | |
---|
| C與其他的程式語言 | - C与C++
- Pascal与C的比较(英语:Comparison of Pascal and C)
- C to Java byte-code compiler
|
---|
| 派生的程式語言 | |
---|
| - C/C++的整合開發環境
分类 |
|
|
---|
| 组织 | |
---|
| 技术 | 调试 | - CRIU(英语:CRIU)
- ftrace(英语:ftrace)
- kdump
- Linux内核oops
- SystemTap(英语:SystemTap)
|
---|
| 启动过程 | |
---|
| ABI | |
---|
| API | 用户空间 | |
---|
| 内核部分 | 系统调用接口 | - POSIX
- ioctl
- select
- open
- read
- close
- sync
- ...
- Linux独有
|
---|
| 内核内 | |
---|
|
---|
|
---|
| 内核组件 | - 安全模块:AppArmor
- Exec Shield(英语:Exec Shield)
- grsecurity(英语:grsecurity)
- seccomp(英语:seccomp)
- SELinux
- Smack
- TOMOYO Linux(英语:TOMOYO Linux)
- Linux PAM(英语:Linux PAM)
|
---|
| 变种 | |
---|
|
---|
| 采用 | 使用范围 | - 桌面
- 嵌入式
- 游戏
- 瘦客户端:
- LTSP
- Thinstation(英语:Thinstation)
- 服务器:
- 设备
|
---|
| 采用者 | - Linux采用者列表
- GENIVI联盟
- Linux专有软件
|
---|
|
---|
| 人物 | |
---|
| |
|