<stdio.h>
将输入输出抽象为流,预定义标准输入输出和标准错误流:stdin
stdout
stderr
。f
开头的函数的操作对象是一个流对象FILE
,s
开头的函数操作的对象通常是char *
。
文件流操作相关:
fopen
fclose
... 主要用于得到和关闭FILE
格式化输出:
fprintf
sprintf
...特别的printf
其实就是fprintf(stdout,...)
格式化输入:
fscanf
sscanf
...特别的scanf
其实就是fscanf(stdin,...)
字符的输入输出:
fgetc
fgets
fputc
fputs
...基于字符和行的输入和输出直接输入输出:
fread
fwrite
基于裸数据的流读写文件的定位操作:
fseek
...错误相关:
feof
ferror
...
<ctype.h>
单字符处理,例如判断字符是否是数字isdigit
、是否是大写字符isupper
、大小写转化tolower
等。
<string.h>
针对字符串char *
的处理函数。如:strcpy
strlen
strncpy
strcmp
strstr
。另外还有mem..
系列:memset
memcpy
memcmp
<math.h>
数学计算:sin
pow
sqrt
fabs
<stdlib.h>
一些工具函数,用于数字转化(atoi
)、存储管理(malloc
)、排序(qsort
bsearch
)、系统和环境(exit
system
getenv
)
<assert.h>
提供assert
函数用于断言
<stdarg.h>
可变参数:va_list
va_start
va_arg
va_end
<setjmp.h>
setjmp
和longjmp
提供一种非正常的程序执行流程,主要用于实现try
catch
<signal.h>
提供signal
和raise
用于注册系统信号处理函数和触发信号。例如:
SIGABRT:
abort
调用触发SIGFPE:算数运算错误,比如除以0、溢出
SIGILL:非法指令
SIGINT:被interrupt终止
SIGSEGV:非法内存访问
SIGTERM:终止程序的请求信号
<time.h>
时间获取、格式化、转化相关:time
<limits.h>和<float.h>
一系列的宏,指示各种整型和浮点型的范围
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。