<stdio.h>

将输入输出抽象为流,预定义标准输入输出和标准错误流:stdin stdout stderrf开头的函数的操作对象是一个流对象FILEs开头的函数操作的对象通常是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>

setjmplongjmp提供一种非正常的程序执行流程,主要用于实现try catch

<signal.h>

提供signalraise用于注册系统信号处理函数和触发信号。例如:

  • SIGABRT:abort调用触发

  • SIGFPE:算数运算错误,比如除以0、溢出

  • SIGILL:非法指令

  • SIGINT:被interrupt终止

  • SIGSEGV:非法内存访问

  • SIGTERM:终止程序的请求信号

<time.h>

时间获取、格式化、转化相关:time

<limits.h>和<float.h>

一系列的宏,指示各种整型和浮点型的范围


P_Chou水冗
5.1k 声望256 粉丝

大数据spark/flink/hadoop/elasticsearch/kafka架构与开发