嵌入式Linux学习--C语言常用函数

在学习嵌入式Linux系统的过程中,发现了C语言中的好多的标准库函数非常好用,以前使用单片机的时候根本没有用过,现在简单的做一下记录:

1、int atoi(const char *nptr);

头文件:#include <stdlib.h>

用来将字符串转换成整数(int);函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 。特别注意,该函数要求被转换的字符串是按十进制数理解的。

2、exit();

头文件:#include <stdlib.h>

exit是在调用处强行退出程序。

exit(0) 表示程序正常退出,exit⑴ 或 exit(-1等非0值表示程序异常退出。

3、void *memset(void *s, int ch, size_t n);

头文件:#include <memory.h> 或 <string.h>

memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;可以方便的清空一个结构类型的变量或数组

函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s。

注意:memset函数按字节对内存块进行初始化,所以不能用它将int数组初始化为0和-1之外的其他值(除非该值高字节和低字节相同)。使用时n的值应当注意,可以这样使用: memset(buffer,0,sizeof(char)*4); sizeof之后乘以数组的长度。

4、void perror(const char *str)

头文件:#include <stdio.h>

用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。

fp = fopen("file.txt", "r"); 
if( fp == NULL ) { 
    perror("Error: "); 
    return(-1); 
}

5、void bzero(void *s, int n);

头文件:#include <string.h>

置字节字符串s的前n个字节为零且包括‘\0’,bzero(void *s, int n) 等价于 memset((void*)s, 0,size_tn),用来将内存块的前 n 个字节清零。

bzero() 不是标准函数,没有在ANSI中定义,Linux下的GCC支持。

 

2018/08/21


6、int strncmp(const char *str1, const char *str2, size_t n)

头文件:#include <string.h>

把 str1 和 str2 进行比较,最多比较前 n 个字节。

如果返回值 < 0,则表示 str1 小于 str2。

如果返回值 > 0,则表示 str2 小于 str1。

如果返回值 = 0,则表示 str1 等于 str2。

 

7、errno变量

头文件:#include <errno.h>

errno 记录系统的最后一次错误代码。代码是一个int型的值。

当linux C api函数发生异常时,一般会将errno变量赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。

例如:fprintf(stderr, "msgget failed with error: %d\n", errno);

 

8、EXIT_FAILURE 和EXIT_SUCCESS 宏定义

头文件:#include <stdio.h>

EXIT_FAILURE 可以作为exit()的参数来使用,表示没有成功地执行一个程序。

EXIT_SUCCESS 作为exit()的参数来使用,表示成功地执行一个程序。

 

9、stdin,stdout,stderr

STDIN  的文件描述符为 0,标准输入设备

STDOUT 的文件描述符为 1,标准输出设备

STDERR 的文件描述符为 2,标准错误输出设备

2018/08/28


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值