![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux c/c++ 学习心得
文章平均质量分 86
猫步旅人
I like programming.make impossible to be i'm possible
展开
-
浅谈内存泄漏
引子我们写的程序是如何一步一步运行起来的?为什么虚拟内存大小可以比实际物理内存大cpu是如何管理物理内存和映射内存的……内存泄漏是什么,如何定位和排查内存泄漏的现象在实际工作中,我们可能会遇到下面这些情况伴随着服务器中的后台任务持续地运行,系统中可用内存越来越少;应用程序正在运行时忽然被 OOM kill 掉了;进程看起来没有消耗多少内存,但是系统内存就是不够用了;……类似问题,很可能就是内存泄漏导致的。我们都知道,内存泄漏指的是内存被分配出去后一直没有被释放,导致这部分内存.原创 2021-11-24 09:56:22 · 1724 阅读 · 0 评论 -
限制linux用户可使用的命令及权限的两种方案
文章目录方案一方案二梳理 bash-4.2 源代码添加代码通过配置加载允许访问的命令如何使 testuser 用户能够正确需要超级权限的操作总结这段时间思考了这么一个问题,如何限制 linux 系统中登录用户的访问权限,限制用户能够使用的命令。在某些场景下,要求能够限制用户使用的命令,同时还能够执行想shutdown这种超级用户才能使用的命令。方案一以 rbash 的方式来限制用户的访问权限,在 ubuntu 系统中,直接使用bash -r就可以进入 rbash,在 centos 7 系统中,不原创 2021-07-16 09:54:23 · 5298 阅读 · 4 评论 -
cmake编译带版本的动态库以及链接不带版本的库
个人博客 https://juejin.cn/user/176366088104638 和 http://blog.wuzhenyu.com.cncmake 编译动态库和链接动态库cmake 中,通过 add_library 的方式,来设置编译目标,编译结果为动态库或者静态库add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [source1] [source2.原创 2021-04-28 10:03:19 · 4666 阅读 · 0 评论 -
构建自己的运行库
文章目录如何构建自己的运行库入口函数堆的实现实现IO 文件操作字符串操作字符串格式化minicrt 的使用测试如何构建自己的运行库之前介绍了《main函数之前后》,这次,我们试图来构建一个自己的运行库。本篇文章中的例子,来自于俞甲子、石凡、潘爱民的《程序员的自我修养-链接、装载与库》,对例子进行了更新,原书中是32位,这里是64位。也感谢这本书给我带来的帮助,对编译过程和程序的底层知识有了...原创 2019-02-22 17:33:27 · 314 阅读 · 0 评论 -
main函数之前后
main函数之前后main 函数之前后编译过程符号分析分析 Glibc 的入口函数总结欢迎大家访问我的个人博客 http://blog.wuzhenyu.com.cnmain 函数之前后初学编程的人都知道,程序是从main函数开始执行的,那么在main函数执行之前和执行之后,程序到底做了些什么呢,比如全局变量是在什么时候执行的呢,我们在动态申请堆内存的时候使用malloc就可以了,那么堆...原创 2019-02-21 17:33:22 · 1438 阅读 · 1 评论 -
代码风格的简单整理
本人coding习惯中,对一些基本的编码习惯和风格进行了整理原创 2016-11-06 19:59:44 · 1490 阅读 · 0 评论 -
数据结构基本排序算法
数据结构的基本算法,包括交换排序,选择排序,归并排序,插入排序等常见的排序算法原创 2016-10-19 18:07:16 · 764 阅读 · 0 评论 -
关于文件描述符--不能不知的几件事
文件描述符的那点事原创 2015-09-27 00:36:32 · 3475 阅读 · 0 评论 -
表达式求值算法总结
表达式求值算法表达式求值,一般采用栈和队列的方式来求值,下面介绍表达式求值的两种算法。方法一、使用两个栈,一个为操作符栈OPTR(operator),一个是操作数栈OPND(operand) 算法过程: 当输入 3 * ( 4 - 1 * 2 ) + 6 / ( 1 + 1 )时,为简单方便,我们输入时,按照字符的顺序一个一个的处理,比如ch = getchar()然后根据c...原创 2016-09-18 16:00:14 · 17923 阅读 · 3 评论 -
linux替换运行程序或so动态库文件导致的问题
linux中替换运行中的程序或者so文件导致的问题原创 2016-09-22 23:12:34 · 9741 阅读 · 4 评论 -
系统调用open的一个不为熟知的秘密
在linux中,打开文件可以使用系统调用open,也可以使用库函数fopen,前者返回的是文件描述符,后者返回的是一个FILE* 的文件指针在open的man page(系统调用为第二章节)中,open函数有两个,一个参数只有一个,一个有三个参数,最后一个参数为mode。当你通过下面这个方式使用open 函数时:int fd = open("test.txt", O_RDWR | O_CREAT原创 2015-09-27 00:25:14 · 603 阅读 · 0 评论