c - 头文件“<stdio.h>”和“<stdlib.h>”之间的区别
问题描述
C 编程中的头文件“<code><stdio.h>”和“<code><stdlib.h>”有什么区别?
解决方案
一个有一组函数声明、常量、宏和类型定义,另一个有一组不同的函数声明、常量、宏和类型定义。如果您想查看内容,可以使用简单的文本编辑器打开文件。
stdio
代表标准输入/输出,其内容通常但不完全与输入输出操作相关,无论是硬件或物理设备还是系统支持的文件。可以在此处找到可用的函数声明、宏和类型定义的列表:
职能:
文件操作:
remove - 删除文件
重命名 - 重命名文件
tmpfile - 打开一个临时文件
tmpnam - 生成临时文件名
文件访问:
fclose - 关闭文件
fflush - 刷新流
fopen - 打开文件
freopen - 使用不同的文件或模式重新打开流
setbuf - 设置流缓冲区
setvbuf - 更改流缓冲
格式化输入/输出:
fprintf - 将格式化数据写入流
fscanf - 从流中读取格式化数据
printf - 将格式化数据打印到标准输出
scanf - 从标准输入读取格式化数据
snprintf - 将格式化输出写入大小缓冲区
sprintf - 将格式化数据写入字符串
sscanf - 从字符串中读取格式化数据
vfprintf - 将变量参数列表中的格式化数据写入流
vfscanf - 从流中读取格式化数据到变量参数列表中
vprintf - 将变量参数列表中的格式化数据打印到标准输出
vscanf - 将格式化数据读入变量参数列表
vsnprintf - 将变量参数列表中的格式化数据写入大小缓冲区
vsprintf - 将变量参数列表中的格式化数据写入字符串
vsscanf - 将格式化数据从字符串读取到变量参数列表中
字符输入/输出:
fgetc - 从流中获取字符
fgets - 从流中获取字符串
fputc - 将字符写入流
fputs - 将字符串写入流
getc - 从流中获取字符
getchar - 从标准输入中获取字符
获取 - 从标准输入获取字符串
putc - 将字符写入流
putchar - 将字符写入标准输出
puts - 将字符串写入标准输出
ungetc - 从流中获取字符
直接输入/输出:
fread - 从流中读取数据块
fwrite - 将数据块写入流
文件定位:
fgetpos - 获取流中的当前位置
fseek - 重新定位流位置指示器
fsetpos - 设置流的位置指示器
ftell - 获取流中的当前位置
rewind - 将流的位置设置为开头
错误处理:
clearerr - 清除错误指示器
feof - 检查文件结束指示符
ferror - 检查错误指示器
perror - 打印错误信息
宏:
BUFSIZ - 缓冲区大小
EOF - 文件结束
FILENAME_MAX - 文件名的最大长度
FOPEN_MAX - 同时打开的流的潜在限制
L_tmpnam - 临时文件名的最小长度
NULL - 空指针(宏)
TMP_MAX - 临时文件数
另外:_IOFBF、_IOLBF、_IONBF(与 setvbuf 一起使用)和 SEEK_CUR、SEEK_END 和 SEEK_SET(与 fseek 一起使用)。
类型:
FILE - 包含控制流的信息的对象
fpos_t - 包含指定文件位置信息的对象
size_t - 无符号整数类型
stdlib
代表标准库,它具有通用功能,包括动态内存管理、随机数生成、通信、算术、搜索、排序和转换等。可用的函数声明、宏和类型定义列表可以在这里找到:
职能
字符串转换
atof - 将字符串转换为双精度
atoi - 将字符串转换为整数
atol - 将字符串转换为长整数
atoll - 将字符串转换为长整型
strtod - 将字符串转换为双精度
strtof - 将字符串转换为浮点数
strtol - 将字符串转换为长整数
strtold - 将字符串转换为长双精度
strtoll - 将字符串转换为长整型
strtoul - 将字符串转换为无符号长整数
strtoull - 将字符串转换为无符号长整型
伪随机序列生成
rand - 生成随机数
srand - 初始化随机数生成器
动态内存管理
calloc - 分配和零初始化数组
free - 释放内存块
malloc - 分配内存块
realloc - 重新分配内存块
环境
abort - 中止当前进程
atexit - 设置退出时执行的函数
at_quick_exit - 设置快速退出时执行的函数
exit - 终止调用进程
getenv - 获取环境字符串
quick_exit - 快速终止调用进程
system - 执行系统命令
_Exit - 终止调用进程
搜索和排序
bsearch - 数组中的二进制搜索
qsort - 对数组元素进行排序
整数运算
abs - 绝对值
div - 积分除法
实验室 - 绝对值
ldiv - 积分除法
llabs - 绝对值
lldiv - 积分除法
多字节字符
mblen - 获取多字节字符的长度
mbtowc - 将多字节序列转换为宽字符
wctomb - 将宽字符转换为多字节序列
多字节字符串
mbstowcs - 将多字节字符串转换为宽字符串
wcstombs - 将宽字符串转换为多字节字符串
宏常量
EXIT_FAILURE - 失败终止代码
EXIT_SUCCESS - 成功终止代码
MB_CUR_MAX - 多字节字符的最大大小
NULL - 空指针
RAND_MAX - rand 返回的最大值
类型
div_t - div 返回的结构
ldiv_t - ldiv 返回的结构
lldiv_t - lldiv 返回的结构
size_t - 无符号整数类型
推荐阅读
- c# - 如何在 dotnet Core 中更改 UnhandledExceptionin 的默认 EventId?
- javascript - React/React Context API:使用 useEffect() 钩子时等待上下文值
- google-api - 无法为测试 G Suite 市场项目触发全域安装
- python - 我想将这些输出转换为列表
- push-notification - FCM - 为什么在较新的 Firebase Admin SDK 中不再支持 FCM 直接通道?
- php - 如何在 laravel DB::select 查询中传递 foreach
- jtag - Trace32:如何使用 t32apinet 以编程方式获取维护密钥到期月份和年份?
- or-tools - 如何在 OR-Tools Routing Solver 中实现自定义软约束?
- python - 使用 .loc 的 Pandas 数据框分配因 MultiIndex 而失败
- javascript - 无法从 div 获取数据