![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【系统编程】Linux编程
文章平均质量分 52
Ijuan_0712
记录学习工作生活,和媳妇儿一起奋斗
展开
-
Valgrind内存管理工具
内存管理是软件开发中最为重要的环境,如果一个长期运行的程序,即使其中的某个函数每一次泄露1KB的内存空间,该函数每1分钟调用100次,100天后,将产生60*24*10*1KB=1.44GB的内存空间,对于一般系统来说,其实早已处于死机的状态。如何能够查看这种内存泄露呢,可以使用Valgrind内存管理工具。一:Valgrind简介 Valgrind是一款用于内存调试、内存泄原创 2016-06-27 08:59:34 · 487 阅读 · 0 评论 -
Linux时间管理
在linux系统下,对时间管理首先要清楚UTC时间和LocaTime时间的区别。UTC(Universal Time Coordinated)即GMT(Greenwich Mean Time)。Local time 为本地时间系统调用函数都在头文件time.h中。clock()函数用来查看进程运行的时间,声明如下:extern clock_t clock(v原创 2016-07-06 10:23:14 · 515 阅读 · 0 评论 -
使用objdump查看动态库和静态库中具有哪些函数
我们在 Linux 下运行一个程序,有时会无法启动,报缺少某某库。这时需要查看可执行程序或者动态库中的符号表,动态库的依赖项, Linux 有现成的工具可用:objdump 。objdump 是 gcc 套件中用来查看 ELF 文件的工具,具体详细用法不进行介绍,此处只讲解如何进行一个动态库和静态库中导出函数的查看。1). 查看依赖项:objdump -x xxx.so | g原创 2016-06-21 15:32:44 · 24404 阅读 · 1 评论 -
"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该共转载 2016-07-21 14:02:47 · 337 阅读 · 0 评论 -
跟着耗子叔学gdb
gdb能够解决的问题:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、动态的改变你程序的执行环境。gdb如何使用:编译生成执行文件:(Linux 下)hchen/test> cc -g ts原创 2016-08-16 16:56:46 · 1295 阅读 · 0 评论 -
Valgrind的内存泄露
有多种方法来定义“内存泄漏”。<span title="In particular, there are two primary definitions of 'memory leak' that are in common usage among programmers. ">特别地,在程序员中通常使用的“内存泄漏”的两个主要定义。 “内存泄漏”的第一个常用定义是“内存已分配原创 2016-11-18 15:19:10 · 1124 阅读 · 0 评论 -
使用SVN问题总汇
1.使用SVN提示“工作副本已经锁定”的解决办法。更新或者提交前执行一下clean up。如果在当前目录执行该命令后,仍然提示锁定,就到上一层目录再执行下2....原创 2016-12-12 18:44:30 · 334 阅读 · 0 评论 -
Makefile中的 = ?= := +=直接的区别
Makefile中在定义变量的时候,我们可以使用其它变量来构造变量的值,在Makefile中有两种方式来定义变量的值是=方式和:=方式。 在说明两者直接的不同时,先来说明下使用的变量。在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字符串,在Makefile中执行的时候其会自动原模原样地展开在使用的地方。其与C/C++所不同的是,你可以在Makefile原创 2016-12-07 14:43:53 · 416 阅读 · 0 评论 -
SVN命令详解
1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件svn add file例如:svn addtest.php(添加test.php)svn add *.php(添加当前原创 2016-12-21 10:47:36 · 696 阅读 · 0 评论