为便于以后的查阅与复习本文整理了嵌入式linux C中用到的多数函数,包括以下9个大类:
内存管理
字符串处理
时间函数
随机函数
文件IO函数
标准IO函数
格式化输入输出和错误处理函数
文件和目录函数进程相关函数
一:内存管理函数
1相关函数:malloc
头文件:#include
函数原型:void *malloc(size_t size)
函数说明:分配内存
返回值:成功返回分配的内存首地址,失败返回NULL
2相关函数:free
头文件:#include
函数原型:void free(void *ptr)
函数说明:释放内存,释放ptr为函数malloc返回的指针,调用free后ptr所指向的内存会被
统回收
3mmap(内存映射)
头文件:#include
#include
函数原型: void mmap(void *star,size_t length,int prot,int flags,int fd,off_t
offset);
函数说明:mmap用来将某个文件映射到内存中,通过对内存的读写实现对文件的操作。参数含
义如下:
start:指向映射后的内存起始地址,通常设为NULL,表示让系统来选定映射地址。操作
成功后,start里的值为映射后的内存首地址。
length:指定文件中被映射的部分的长度,以字节为单位,0表示全部映射。
prot:映射区域的使用方式,有以下选项
PROT_EXEC 映射区域可被执行
PROT_READ 映射区域可被读取
PROT_WRITE 映射区域可被写入
PROT_NONE 映射区域不能存取
flag: 设置映射区域的属性,有以下选项
MAP_FIXED 如果start指定的区域无法映射,则放弃映射
MAP_SHARED 对映射区域的修改会复制回原文件,而且允许其他映射该文件的进程
共享
MAP_LOCKED 将映射区域锁住
fd:文件描述符,代表要映射的文件
offset:文件映射的偏移量。通常设置为0,代表从文件开始处映射,offset必须是分页
大小的整数倍
返回值:无
4相关函数:munmap
头文件:#include
头文件:#include
函数原型: int munmap(void *start,size_t length);
函数说明:取消参数start所指向的内存映射内存。当进程结束时,内存映射会自动取消,但
关闭对应的文件描述符不会取消映射。
返回值:0:操作成功
-1:操作失败,错误原因存于errno中
二字符串处理函数:
1:相关函数:bzero
头文件:include
函数原型:void bzero(void *s ,int n)
函数说明:将参数s指向的内存区域前n个字节,全部设置为0
返回值:无
2相关函数:memcpy
头文件:#include
函数原型:void *memcpy(void *dest,const void *src,size_t n)
函数说明:拷贝src所指向的内存前n个字节到dest所指向的内存单元
返回值:返回dest的值
3相关函数:memcmp
头文件:#include
函数原型:int memcpy(const void *s1,const void *s2,size_t n);
函数说明:比较s1,s2所指向的内存区域前n个字节
返回值:0:完全相同
大于0:s1指向内存中的值大于s2指向内存中的值
小于0:s1指向内存中的值小于s2指向内存中的值
4相关函数:memset
头文件:#include
函数原型:void *memset(void *s,int c,size_t n);
函数说明:将参数s所指向的内存前n个字节以参数c填入
返回值:返回s的值
5相关函数:strcat
头文件:#include
函数原型:char *strcat(char *dest,const char *src)
函数说明:将参数str指向的字符串拷贝到dest指向的字符串尾,dest指向的内存空间要足够
大。
返回值:返回dest的值
6相关函数:strncat
头文件:#include
函数原型:char *strncat(char *dest,const char *src,size_t n)
函数说明:将参数str指向的字符串拷贝n个字符到dest指向的字符串尾,dest指向的内存
空间要足够大。
返回值:返回dest的值
7相关函数:strcmp
头文件:#include
函数原型:int strcmp(const char *s1t,const char *s2)
函数说明: 比较s1,s2所指向的字符串
返回值:0:相等
大于0:s1指向内容较大
小于0:s1指向内容较小
8相关函数:strncmp
头文件:#include
函数原型:int strncmp(const char *s1t,const char *s2,size_t n);
函数说明: 比较s1,s2所指向的字符串前n个字符
返回值:0:相等
大于0:s1指向内容较大
小于0:s1指向内容较小
9相关函数strcpy
头文件:#include
函数原型:char *strcpy(char *dest,const char *src)
函数说明:src指向内容拷贝到dest指向的地址
返回值:返回dest的值
10相关函数strncpy
头文件:#include
函数原型:char *strncpy(char *dest,const char *src,size_t n)
函数说明:src指向前n个字符内容拷贝到dest指向的地址
返回值:返回dest的值
11相关函数strlen
头文件:#inlude
函数原型:size_t strlen(const char *s)
函数说明:计算s指向字符串长度,不包含