一只菜鸟横空出世,码农世界闯一闯,每天进展多一丢丢。 brk()与sbrk()函数的学习与使用 brk()与sbrk()函数定义如下: #include <unistd.h> int brk(boid *addr); addr:把内存末尾指针设置为addr.返回值:0表示成功,非0表示失败 void ...
分类:
其他好文 时间:
2018-07-05 13:55:18
阅读次数:
178
上周总结了《C 标准库的基础 IO》,其实这些功能函数通过「系统调用」也能实现相应功能。这次文章并不是要详细介绍各系统调用接口的使用方法,而是要深入理解「库函数」与「系统」调用之间的关系和区别。 ...
分类:
系统相关 时间:
2018-05-06 17:28:39
阅读次数:
177
最近因为工作关系,一直在做node.js的开发,学习了koa框架,orm框架sequelize,以及swagger文档的配置。但是,最近因为swagger文档使用了es6的修饰器那么个东西(在java中被称作注解),所以,node.js无法编译项目,所以就需要使用babel对es6进行转换。因为这篇 ...
分类:
Web程序 时间:
2018-04-22 22:07:28
阅读次数:
428
在堆上分配内存:malloc和free 一般情况下,C程序使用malloc函数族在堆上分配和释放内存。较之brk和sbrk,这些函数具备不少优点: 属于C语言标准的一部分 更易于在多线程程序中使用 接口简单,允许分配小块内存 允许随意释放内存块,它们被维护于一张空闲内存列表中,在后续内存分配调用时循... ...
分类:
其他好文 时间:
2018-03-30 01:12:22
阅读次数:
156
尽管malloc和free所提供的内存分配接口比之brk和sbrk要容易许多,但在使用时仍然容易犯下各种编程错误。 理解malloc和free的实现,将使我们洞悉产生这些错误的原因以及如何才能避免此类错误。 to be continued 。。。。。。 ...
分类:
其他好文 时间:
2018-03-30 01:08:44
阅读次数:
215
一直有人说这个时代做渗透太难了, 各个平台都开始重视安全性, 不像十几年前, 随便有个栈溢出就能轻松利用. 现在的环境对于新手而言确实不算友好, 上来就需要 面临着各种边界保护, 堆栈保护, 地址布局随机化. 但现实如此, 与其抱怨, 不如直面现实, 拥抱变化, 对吧? ...
分类:
其他好文 时间:
2018-03-24 11:33:09
阅读次数:
2592
ptmalloc内存分配和回收详解(文字版) 进程默认内存布局(x86) 从进程的内存布局可知,.bss段之上的这块分配给用户程序的空间被称之为heap,start_brk指向heap的开始,而brk指向heap的顶部。可以使用系统调用brk()和sbrk()来增加表示heap顶部的brk值,从而线 ...
分类:
其他好文 时间:
2018-03-22 01:47:33
阅读次数:
287
本文参考华庭(庄明强)的ptmalloc2 源码剖析 简介: ptmalloc实现了malloc(),free()以及一组其他函数,以提供动态内存管理,同时支持多线程。分配器处于用户空间和内核空间之间,响应用户的分配请求,向操作系统申请内存。总体思想是先“批发”一块大内存,而后“零售”给用户,同时也 ...
分类:
其他好文 时间:
2018-02-22 21:31:12
阅读次数:
287
trap命令用于指定在接收到信号后将要采取的动作。常见的用途是在脚本程序被中断时完成清理工作。不过,这次我遇到它,是因为客户有个需求:从终端访问服务器的用户,其登陆服务器后会自动运行某个命令,例如打开应用(命令写在.bashrc等文件中),最后退出,并断开连接;期间是不能允许其使用Ctrl+C等中断 ...
分类:
系统相关 时间:
2018-02-22 10:58:33
阅读次数:
225
参考博文:http://www.cnblogs.com/huxiao-tee/p/4660352.html x86平台下linux进程虚拟地址空间分布(2.6.7以前版本) mmap区域与栈区域相对增长,只有1GB连续的虚拟地址空间可用。 x86平台下linux进程虚拟地址空间分布(2.6.7以后版 ...
分类:
其他好文 时间:
2018-02-08 15:30:39
阅读次数:
383