Linux
_愤怒的石头_
这个作者很懒,什么都没留下…
展开
-
浅析GLib
GLib是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。它能够在类UNIX的操作系统平台(如LINUX, HP-UNIX等),WINDOWS,OS2和BeOS等操作系统台上运行。转载 2014-06-04 15:56:34 · 2376 阅读 · 0 评论 -
高效获得Linux函数调用栈/backtrace的方法
有四种方法可以获得Linux的函数调用堆栈,参见CALL STACK TRACE GENERATION。在这里简单罗列一下文中提到的四个方案:方法1 GCC内置函数__builtin_return_address方法2 Glibc中的backtrace函数方法3 Jeff Muizelaar实现的增强backtrace,除了函数名,还能获得代码行号方法4 libunwind转载 2016-12-13 15:41:16 · 1961 阅读 · 0 评论 -
gcc中的-Wl,rpath=<your_lib_dir>选项
gcc编译链接动态库时,很有可能编译通过,但是执行时,找不到动态链接库,那是因为-L选项指定的路径只在编译时有效,编译出来的可执行文件不知道-L选项后面的值,当然找不到。可以用ldd 看看是不有 ‘not found’在你链接的库后面,解决方法是通过-Wl,rpath=,使得execute记住链接库的位置转载 2017-01-03 17:49:36 · 547 阅读 · 0 评论 -
linux下用/proc/stat文件来计算cpu的利用率(附源码)
注:本文思想借鉴博客http://www.blogjava.net/fjzag/articles/317773.html,源码为自己写的。本着尊重原创的目的请大家看他的博客,学的更多!proc文件系统介绍 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息转载 2016-12-26 10:43:20 · 1228 阅读 · 0 评论 -
详解Linux中监控CPU与虚拟内存运行信息的命令用法
mpstat mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况。转载 2016-12-26 10:44:36 · 714 阅读 · 0 评论 -
shell中$(( )) 与 $( ) 还有${ }的区别
$( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行。例如:[code]$ echo the last sunday is $(date -d转载 2017-01-04 15:20:01 · 198 阅读 · 0 评论 -
linux下的so、o、lo、a、la文件的区别
o: 编译的目标文件a: 静态库,其实就是把若干o文件打了个包so: 动态链接库(共享库)lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息 1 libtool的工作原理 libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口转载 2017-01-04 15:20:44 · 560 阅读 · 0 评论 -
libtool: link: warning: library `XXXXX.la' was moved.出现的原因
libtool: link: warning: library `/home/admin/usr/lib/libjson.la' was moved.libtool: link: warning: library `/home/admin/usr/lib/libcares.la' was moved.libtool: link: warning: library `/home/admin/转载 2017-01-04 15:53:14 · 3306 阅读 · 0 评论 -
理解 GNU Libtool
这篇文章与『理解 GLib 的单元测试框架』一文有些渊源,因为后者在几个示例中使用了 libtool 产生库文件与应用程序文件。田园时代我要写一个叫做 foo 的库,它提供一个什么也不做的函数。这个库的头文件为 foo.h:#ifndef FOO_H#define FOO_Hvoid foo(void);#endiffoo.c 是这个库的实现:#include "fo转载 2017-01-04 18:37:41 · 3032 阅读 · 0 评论 -
使用SIGALRM信号量和sleep冲突的解决办法
系统中的一个模块需要频繁的获取系统时间,使用linux中内置的函数开销过大,因为需要的精度不是很高(毫秒级),索性用signal函数配合setitimer实现了个简易的全局时钟。但是后来发现,SIGALRM的中断信号回终止sleep,因为sleep就是用SIGALRM信号量实现的,得另想方案。这个替代方案就是POSIX中内置的定时器:timer_create()(创建)、timer_set转载 2016-12-13 15:35:03 · 1541 阅读 · 0 评论 -
使用cfdisk 新建一个分区
1 $ sudo cfdisk2 移动上下键选中空白盘3 移动左右键选择“New”4 填写新分区的大小5 移动左右键选择“Write”6 提示你输入yes or no 时,选择yes7 $sudo udevadm trigger8 查看分区$ cat /proc/partitions 9 如果没有出现你的新建分区,则$ sudo /etc/init.d/ud转载 2016-11-07 16:43:35 · 2642 阅读 · 0 评论 -
ARM嵌入式开发中的GCC内联汇编简介
ARM嵌入式开发中的GCC内联汇编简介嵌入式开发交流群280352802,欢迎加入!在针对ARM体系结构的编程中,一般很难直接使用C语言产生操作协处理器的相关代码,因此使用汇编语言来实现就成为了唯一的选择。但如果完全通过汇编代码实现,又会过于复杂、难以调试。因此,C语言内嵌汇编的方式倒是一个不错的选择。然而,使用内联汇编的一个主要问题是,内联汇编的语法格式与使用的编译器直接相关,也就是说,转载 2016-09-24 11:30:45 · 419 阅读 · 0 评论 -
glib 简介
编译 编译 简介 glib 可调试/configure CFLAGS=-g && make && make installormake CFLAGS=-g 简介原文地址: http://laiyuanyuan7.blog.163.com/blog/static/1527432120112104428767/glib库是Linux平台下转载 2014-06-04 15:10:38 · 1395 阅读 · 0 评论 -
理解 pkg-config 工具
原文: http://www.chenjunlu.com/2011/03/understanding-pkg-config-tool/转载 2014-06-04 22:54:19 · 332 阅读 · 0 评论 -
内存泄露检测之: VC内存泄露检查工具--Visual Leak Detector
http://www.codeproject.com/KB/applications/visualleakdetector.aspx初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内转载 2014-06-07 14:38:52 · 472 阅读 · 0 评论 -
glibc 内存池管理 ptmalloc
ptmallocphenix* 2006-06-07目录 1 前言 2 x86平台Linux程序的内存分布 3 Allocator 4 chuck的组织 4.1 chuck 4.2 chunk中的空间复用 5 空闲 chunk 容器 5.1 Bins转载 2014-06-07 15:32:40 · 397 阅读 · 0 评论 -
内存泄露检测之: Valgrind简单用法
Valgrind的主要作者Julian Seward刚获得了今年的Google-O'Reilly开源大奖之一──Best Tool Maker。让我们一起来看一下他的作品。Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏和内存违例,转载 2014-06-07 14:23:08 · 1235 阅读 · 0 评论 -
libc、glibc和glib的关系
【glibc 和 libc】 glibc 和 libc 都是 Linux 下的 C 函数库。 libc 是 Linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GUN C 函数库。 ANSI C 和 GNU C 有什么区别呢? ANSI C 函数库是基本的 C 语言函数库,包含了 C 语言最基本的库函数。这个库可以根据头文件划分为 1转载 2014-06-11 17:27:37 · 531 阅读 · 0 评论 -
浅析pthread_cond_wait
pthread_cond_wait() 用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread_cond_s转载 2014-05-31 20:21:16 · 439 阅读 · 0 评论 -
记录锁的使用 fcntl
早上花了半天的时间研究了下记录锁fcntl函数的使用方法,在这记录下以作备份 记录锁的概念上有两种锁,一种是共享锁(读锁),一种是互斥锁(写锁),记录锁就是一种对不同进程打开同一个文件进行读写操作的保护机制,就是当有人在写的时候,别人就不能打开文件读这个文件里的内容,当有人在读的时候,就不能让别人打开这个文件来看。 简单的说其实就是在打开一个文件对其进行操作以前,可以对其加上读转载 2014-06-01 15:54:41 · 737 阅读 · 0 评论 -
linux 内存泄漏查找
原文地址:http://blog.csdn.net/jinzhuojun/article/details/46659155C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种纠结的问题。如果crash的地方正是内存使用错误的地方,说明你人品好。如果crash的地方内存明显不是consistent的,或者内存管理信息都已被破坏,并且还是随机出现的,那就比较麻烦了。当然,祼转载 2017-01-05 20:12:48 · 3962 阅读 · 0 评论