C语言函数大全
需积分: 0 63 浏览量
更新于2007-11-19
收藏 335KB DOC 举报
### C语言函数大全知识点
#### 一、内存管理函数
##### 1. **brk**
- **功能**:更改数据段空间的分配。
- **原型**:`int brk(void *endds);`
- **位置**:`alloc.h`
- **说明**:
- 将程序数据段的顶部设置为`endds`所指向的内存位置。
- 调用成功后返回`0`;若调用失败,则返回`-1`并设置`errno`。
##### 2. **calloc**
- **功能**:分配内存。
- **原型**:`void *calloc(size_t nelem, size_t elsize);`
- **位置**:`stdlib.h`, `alloc.h`
- **说明**:
- 为`nelem`个数据项的每个元素分配`elsize`字节的空间,并在该空间中保存`0`值。
- 返回一个指向新分配块的指针;若没有足够的空间则返回`NULL`。
##### 3. **coreleft**
- **功能**:返回测出的未使用内存量。
- **原型**:小型模块中`unsigned long coreleft(void);`
- **位置**:`alloc.h`
- **说明**:
- 返回可用内存的量(按照字节计算)。
##### 4. **faralloc**
- **功能**:从高端开始分配内存。
- **原型**:`void far *farmalloc(unsigned long nbytes);`
- **位置**:`alloc.h`
- **说明**:
- 返回一个指向新分配数据块的指针;若没有足够的空间创建数据块,则返回`NULL`。
##### 5. **farcoreleft**
- **功能**:返回测出的高端未使用内存量。
- **原型**:`unsigned long farcoreleft(void);`
- **位置**:`alloc.h`
- **说明**:
- 返回最高分配数据块和内存末端之间剩余的所有空间量(按照字节计算)。
##### 6. **farfree**
- **功能**:从高端释放一个数据块。
- **原型**:`void far free(void far *block);`
- **位置**:`alloc.h`
- **说明**:
- 释放从高端开始分配的内存块。
##### 7. **farcalloc**
- **功能**:从高端开始分配内存。
- **原型**:`void far *farcalloc(unsigned ling nunits, unsigned ling unitsz);`
- **位置**:`alloc.h`
- **说明**:
- 为`nunits`数据项的每个`unitsz`个字节分配空间,并返回指向新分配块的指针;若没有足够的空间创建数据块,则返回`NULL`。
##### 8. **farrealloc**
- **功能**:调整高端的分配数据块。
- **原型**:`void far *farrealloc(void far *oldblock, unsigned long nbytes);`
- **位置**:`alloc.h`
- **说明**:
- 尝试重新分配数据块,如果分配失败或`size == 0`,则返回`NULL`。
##### 9. **free**
- **功能**:释放通过`malloc`或者`calloc`分配的数据块。
- **原型**:`void free(void *block);`
- **位置**:`stdlib.h`, `alloc.h`
##### 10. **malloc**
- **功能**:分配内存。
- **原型**:`void *malloc(size_t size);`
- **位置**:`alloc.h`, `stdlib.h`
- **说明**:
- 为请求的大小(按字节计算)分配内存,并返回一个指向新分配数据块的指针;若没有足够的空间,则返回`NULL`。
##### 11. **realloc**
- **功能**:重新分配主存。
- **原型**:`void *realloc(void *block, size_t size);`
- **位置**:`alloc.h`, `stdlib.h`
- **说明**:
- 尝试将原先分配的数据块扩大或缩小到`size`字节。如果数据块不能重新分配,或者`size == 0`,则返回`NULL`。
##### 12. **sbrk**
- **功能**:更改数据段的空间分配。
- **原型**:`void *sbrk(int incr);`
- **位置**:`alloc.h`
- **说明**:
- 为数据块增加`incr`个字节。成功实现后,`sbrk`返回原有的中断值;若失败则返回`-1`,并设置`errno`。
#### 二、错误检测函数
##### 1. **assert**
- **功能**:对条件进行测试,可能会退出程序运行。
- **原型**:`void assert(int test);`
- **位置**:`assert.h`
- **说明**:
- 当`test`表达式为假时,调用`assert`会打印一条消息到标准输出,并且可能调用`abort`来终止程序。
#### 三、输入输出函数
##### 1. **bioscom**
- **功能**:RS-232的I/O通讯。
- **原型**:`int bioscom(int cmd, char abyte, int port);`
- **位置**:`bios.h`
- **说明**:
- `cmd`的值及含义如下:
- `0`:设置通讯参数`abyte`。
- `1`:将`abyte`发送出去。
- `2`:接受一个字符。
- 其他命令值可能涉及其他特定的功能。
---
以上介绍的是C语言中常见的内存管理、错误检测以及输入输出相关的函数。这些函数在编写C程序时非常实用,能够帮助开发者更好地管理内存资源、检测程序运行状态以及处理输入输出操作。对于初学者来说,理解这些函数的基本用法和作用是非常重要的,这有助于提高编程效率和代码质量。
wikinginin
- 粉丝: 2
- 资源: 21
最新资源
- 【安卓源代码】Android作业(完整前后端+mysql+说明文档).zip
- 瓶子、键盘、电脑、老鼠、笔、人、手机检测30-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识
- 电子垃圾检测16-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 登录系统123考试45
- 基于大数据python评价舆情LSTM系统 框架 vs2022 + python + echart + django + cnn + lstm + tensorflow + mysql + orm
- 22601134沈晨综合案例 .html
- Qt编写的一些开源的demo,支持Qt4、Qt5、Qt6,支持任意系统,预计会有100多个,一直持续更新完善,代码简洁易懂注释详细,每个都是独立项目,非常适合初学者,代码随意传播使用
- 这个是最开始的代码-登录系统
- 电子游戏检测32-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 【wasm-rust图片png转pdf源码以及二进制发布】
- 网页设计,西藏网站设计与开发,大学生作业,毕业设计
- 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
- 基于大数据python评价舆情LSTM系统 框架 vs2022 + python + echart + django + cnn + lstm + tensorflow + mysql + orm
- 盒子和数字检测14-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- 爱生活.exe爱生活1.exe爱生活2.exe