摘要: 。。。 申请内存时,得到指针ptr = mem,将指针ptr赋值给 pBuff1和pBuff2,假设先释放pBuff1,且mem所在的chunk的前一个chunk是空闲状态,则两个chunk合并,再次释放pBuff2时,mem为非法地址,导致失败。 阅读全文
posted @ 2022-05-16 17:02 墨尔基阿德斯 阅读(84) 评论(0) 推荐(0)
摘要: 一、linux的内存布局 1、32位模式下内存的经典布局​ 图1 32位模式下内存经典布局 ​ 注:这种内存布局模式是linux内核2.6.7以前的默认内存布局形式 说明: (1)在32的机器上,loader将可执行文件的各个段次依次载入到从0x80048000(128M)位置开始的空间中。程序能够 阅读全文
posted @ 2022-05-16 15:32 墨尔基阿德斯 阅读(194) 评论(0) 推荐(0)
摘要: 转自:https://blog.csdn.net/weixin_45574485/article/details/113104362 堆基础 堆简介 (部分参考与libc源码) 不同的平台有不同的堆内存管理机制,比如: 管理机制对应的相关的平台 dlmalloc General purpose al 阅读全文
posted @ 2022-05-16 14:52 墨尔基阿德斯 阅读(315) 评论(0) 推荐(0)
摘要: 如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看。 majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。 这两个数值表示一个进程自启动以来所发生的缺页中断的次数。 发成缺页中断后,执行 阅读全文
posted @ 2022-05-16 14:41 墨尔基阿德斯 阅读(130) 评论(0) 推荐(0)
摘要: 转自:https://blog.csdn.net/initphp/article/details/50833036 目录 一、内存布局 二、ptmalloc内存管理器 1. 设计假设 2. 主分配区和非主分配区 3. chunk 内存块的基本组织单元 4. 内存分配malloc流程 5. 内存释放f 阅读全文
posted @ 2022-05-16 14:21 墨尔基阿德斯 阅读(393) 评论(0) 推荐(0)
摘要: 对于字符数组与字符指针: 1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写"abc",那么编译器帮你存储的是"abc\0". 2. 字符串直接量作为字符指针的初始值 "hello"是一个字符串直接量,编译器将其作为const char*处理,与之相关联的内存空间位 阅读全文
posted @ 2022-05-11 10:22 墨尔基阿德斯 阅读(176) 评论(0) 推荐(0)
摘要: 写在前面 sizeof、strlen、字符串、数组,提到这些概念,相信学过C语言的人都能耳熟能详,也能谈得头头是道,但是,在实际运用中,当这些内容交织在一起时,大家却不一定能搞地清清楚楚,本文的目的正是帮助大家将相关知识总结清楚。 正文 先看一段代码 1 #include <stdio.h> 2 # 阅读全文
posted @ 2022-05-11 10:21 墨尔基阿德斯 阅读(121) 评论(0) 推荐(0)
摘要: https://www.cnblogs.com/zhangshenghui/category/878264.html?page=2 阅读全文
posted @ 2022-05-10 16:50 墨尔基阿德斯 阅读(21) 评论(0) 推荐(0)
摘要: 下面两个函数都可用来复制一个现存的文件描述符: ? 1 2 3 4 #include<unistd.h> int dup(int filedes); int dup2(int filedes,int filedes2); 两函数的返回值:若成功则返回新的文件描述符,若出错则返回-1 由dup返回的新 阅读全文
posted @ 2022-05-10 14:30 墨尔基阿德斯 阅读(373) 评论(0) 推荐(0)
摘要: stdin,stdout 等类型为 FILE *。 STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO 等类型为 int。 使用 FILE * 的函数主要有:fopen、fread、fwrite、fclose等,基本上都以 f 开头。 使用 STDIN_FILENO 等 阅读全文
posted @ 2022-05-10 14:07 墨尔基阿德斯 阅读(268) 评论(0) 推荐(0)