C语言
文章平均质量分 68
努力努力再努力~~
这个作者很懒,什么都没留下…
展开
-
【内存】GLIBC堆内存申请
什么是堆堆是每个程序被分配的一块内存区域,和栈的区别主要在于堆内存是动态分配的。也就是说,程序可以从heap段请求一块内存,或者释放一块内存。另外,堆内存是全局的,即在程序的任意位置 都可以访问到堆,并不一定要在调用malloc的函数访问,这是因为C语言使用指针指向动态分配的内存。使用动态分配的内存Glibc采用ptmalloc2内存分配器管理堆内存,相比前身dlmalloc,它增加了队多线程的支持。注意,即使申请0字节内存,malloc仍然会分配一个最小的chunk;如果传给free的参数是空指原创 2021-08-16 23:27:01 · 571 阅读 · 0 评论 -
【C函数】strtol函数用法
strtol函数作用: 把参数 str 所指向的字符串根据给定的 base 转换为一个长整数,字符串中数字的提取声明:long int strtol(const char *nptr, char **endptr, int base)参数:str – 要转换为长整数的字符串。endptr – 对类型为 char* 的对象的引用,其值由函数设置为 str 中数值后的下一个字符。base – 基数,必须介于 2 和 36(包含)之间,或者是特殊值 0。返回值:该函数返回转换后的原创 2021-08-15 19:38:33 · 8623 阅读 · 1 评论 -
【C函数】memalign
memalign作用:内存申请,区别与malloc的是,可以申请一个地址是boundary的倍数的内存块malloc或realloc返回的内存块地址都是8的倍数(如果是64位系统,则为16的倍数)。如果你需要更大的粒度,请使用memalign或valloc。这些函数在头文件“stdlib.h”中声明。实现:void * memalign (size_t boundary, size_t size) 参数:boundary:必须是2的幂,用来控制返回的地址是boundary倍数原创 2021-08-15 16:39:08 · 5259 阅读 · 0 评论 -
【C语言】输出带颜色的打印
一、Linux下控制台文字上色的方法Linux下控制台颜色是通过添加专用数字来选择的。这些数字夹在 "\e["和 "m"之间。如果指定一个以上的数字,则用分号将它们分开。举几个例子:(1)第一个数字(31)为前景颜色(红色);第二个数字为(42)背景颜色(绿色)echo -e "\e[31;42m"(2)使用"\e[0m"序列将颜色重新设置为正常值echo -e "\e[0m" 或 echo -e "\033[0m"(3)颜色对应关系如下所示:\e[30m – \e[37m 设置前原创 2021-08-05 23:50:51 · 4301 阅读 · 1 评论 -
【C语言】__attribute__使用
一、介绍GNU C 的一大特色就是__attribute__ 机制attribute 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。attribute 书写特征是:attribute 前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__ 参数。attribute 语法格式为:attribute ((attribute-list))关键字__att原创 2021-08-05 23:43:23 · 6636 阅读 · 0 评论 -
【C语言】工作中容易忽视的问题
本文指在记录自己在项目开发过程中遇到的一些忽视的基础知识导致的异常问题2021/8/5指针操作引发内存异常问题环境:ARM芯片,64位,需要将一个寄存器地址0x2f004_0008写入0x13;由于代码编写问题,导致0x2f004_000C寄存器被修改问题代码://省略部分:0x2f004_0008 mmap出4K Byte的内存进行寄存器的写入//假设mmap出的地址为0x7f004_0008//写入寄存器的代码为int32 i32Data = 0x13;*((uint64 *)0x7原创 2021-08-05 22:54:59 · 83 阅读 · 0 评论 -
【C语言】va_list变量_printf
提到va_list变量可能都比较陌生,没什么概念;但是printf函数应该都不陌生的,参数2使用的…,作用是因为不知道此处到底有多少个入参,va_list变量就是来解析…的int printf ( const char * format, ... );首先来提一下C语言函数中“…”参数的含义。与它相关还涉及到以下4个部分:va_list变量:是一个指向函数的参数的指针va_start():用于初始化va_list变量va_arg():用于返回可变参数va_end():用于结束可变参数的获取原创 2021-08-05 22:41:33 · 510 阅读 · 0 评论