爱悠闲 > 分类 >

linux-C 第2页

autotools系列工具—-自动生成Makefile
在较大项目中, 如果手动维护Makefile, 那将是一件复杂并痛苦的事情. 那么, 有没有一种轻松的手段生成Makefile呢? autotools系列工具正是在这样的呼声中诞生的. 它只需用户输入简单的目标文件, 依赖文件, 文件目录等就可以轻松地生成Makefile了. 另外, 这些工具还可以完成系统配置信息的收集, 从而可以方便地处理各种移植性问题. autotools是系列工具, 它含有
gdb如何监视for循环中的i,比如让i=50的时候停下来
write watchpoint   watch read watchpoint  rwatch read/write watchpoint  awatch   首先用gdb的命令watch,监视i,命令是watch i。 然后查询用查询break命令,info breakpoints,查到watch i这个硬断点的序号,比如是2, 然后用跳过break的命令,ignore。命令是ignore 2
X86架构上函数调用过程的堆栈
理解调用栈最重要的两点是:栈的结构,EBP寄存器的作用。 首先要认识到这样两个事实:   1、一个函数调用动作可分解为:零到多个PUSH指令(用于参数入栈),一个CALL指令。CALL指令内部其实还暗含了一个将返回地址(即CALL指令下一条指令的地址)压栈的动作。   2、几乎所有本地编译器都会在每个函数体之前插入类似如下指令:PUSH EBP; MOV EBP ESP;即,在程序执行到一个函数的
#pragma pack(n) 对齐用法详解
什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的 内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。
Linux下的多线程编程
一篇介绍Linux下的多线程编程 的文章 1 引言   线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的 Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系 统所支持,包括Windows/NT,当然,也包括Linux。   为什
关于sscanf和strtol的用法以及在ini文件中读取section,key,value的用法
sscanf呢,就是把string当做输入,而不是像scanf那样,把标准键盘输入当做输入。然后根据Format翻译解释,把匹配format的结果存储在后面指针指向的内存区域,man里面原文是这样写的,read character data, interpret it according to a format, and store the        converted results int
函数指针的传递问题
#include <stdio.h> typedef int (* func )( int ); int add ( int a ) {         return ++ a ; } int getfunc ( func myfunc ) {     myfunc = & add ;     retur
如何判断一个机器是Little-Endian还是Big-Endian
int num = 1;   if(*(char *)&num == 1) {         printf("/nLittle-Endian/n"); } else {         printf("Big-Endian/n"); } 这个倒是不错的方法~
孤儿进程和僵尸进程
一、定义:什么是孤儿进程和僵尸进程    僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。    孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。 示例:     僵尸进程 :一个子进程在其父进程还没有调用wai
gdb调试工具简介
使用gdb调试程序简介 一、初始化    输入gdb进入gdb调试环境。或者直接输入gdb +progfile来加载文件。 注意该文件是使用gcc(或g++)编译得到的。为了使 gdb 正常工作,必须 使你的程序在编译时包含调试信息,编译时必须使用-g参数来。    或者进入gdb环境后,通过命令file + progfile来加载需要调试的可 执行文件文件。    查看源代码:list [函数名