c
文章平均质量分 73
hardworkba
这个作者很懒,什么都没留下…
展开
-
Linux下僵尸进程的处理
Linux下僵尸进程的处理 什么是僵尸进程 僵尸进程是指它的父进程已经退出(父进程没有等待(调用wait/waitpid)它),而该进程dead之后没有进程接受,就成为僵尸进程,也就是(zombie)进程。 僵尸进程是怎么样产生 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数转载 2011-06-18 00:52:00 · 567 阅读 · 0 评论 -
条件编译的一个作用
条件编译的一个作用 条件编译的一个作用是用于处理文件之间的关系。使其在同一个文件中不被重复包含。如果文件的关系是这样: A / \C D \ / B上面的文件有关系,C中包含A,D中包含A。 B中要包括C和D,这样条件编译就可把在预处理阶段去掉重复包含文件A。 $ cattest1.h #ifndef__A__H__#defin原创 2013-08-11 22:27:18 · 1132 阅读 · 0 评论 -
全局变更使用及编译
全局变更使用及编译最近在弄自已的一个库文件,里面有一个函数用到几个全局变量。编译时,老是放重定义的错误,调试花了我不了时间。这是很基础的问题,自己没有重视。回到最初的起点,重新理解一下基础的问题。一般来说,声明放在.h头文件里面,而定义放在cpp文件里。有必要弄清楚声明和定义间的区别:变量的声明就是告诉编译器有这么一个变量,声明是不分配存储空间。如externint x原创 2013-08-11 21:16:23 · 763 阅读 · 0 评论 -
gcc -fPIC 参数
gcc -fPIC 参数转自:http://blog.sina.com.cn/s/blog_54f82cc201011op1.html-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享转载 2013-08-11 00:16:10 · 2144 阅读 · 0 评论 -
GCC 参数详解
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x languag转载 2013-08-10 23:00:26 · 415 阅读 · 0 评论 -
union联合体
union联合体是一个很有用工具。先看union联合体的描述:在The C Programming Language里面讲述union内存分配的原话是1)联合体就是一个结构2)联合体的所有成员相对于基地址的偏移量为03)此结构空间要大到总够容纳最“宽”的成员4)并且,其对其方式要适合于联合体中所有类型的成员 可以看出,联合体简单理解是多个不同类型共享一份地址空间的结原创 2013-08-09 00:07:23 · 623 阅读 · 0 评论 -
信号量实现读写锁
/* * 一般的读写锁: * 一般的读写锁都是一开始对锁分配MAX_RESOURCE个资源,其中写操作的时候会一次性占用 * MAX_RESOURCE个资源,而读操作的时候就只会占用一个资源。这样子会出现一个问题就是 * 如果在当前资源的数目不为MAX_RESOURCE的时候,那么总是不能进行写操作,只能是进行 * 读操作,如果不停的有读操作的话,那么就无法进行写操作,那么就是转载 2013-07-31 09:38:42 · 1926 阅读 · 0 评论 -
Linux那些事儿之我是Sysfs--12-(opendir,readdir系统调用流程)
Linux那些事儿之我是Sysfs--12-(opendir,readdir系统调用流程)转自:http://blog.csdn.net/liangxiaozhang/article/details/7268638上回我们说到,如何创建文件夹和文件。我们发现,在sysfs中,inode并不那么重要。这是因为我们所要读写的信息已经就在内存中,并且已经形成了层次结构。我们只需有dentry,就可以转载 2013-07-25 11:46:38 · 944 阅读 · 0 评论 -
strcpy、 strncpy 和snprintf
Strcpy、 strncpy 和snprintfstrcpy:字串复制 原型:char *strcpy(char *dest, char *src); 功能:把src所指由'\0'结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 注意:当src串长度>转载 2013-11-06 12:06:27 · 778 阅读 · 0 评论 -
select,poll和epoll的区别
select,poll和epoll的区别转自:http://www.cnblogs.com/qq78292959/archive/2012/03/30/2425598.htmlselect()系统调用提供一个机制来实现同步多元I/O:#include #include #include int select (int n,fd_set *转载 2013-08-20 23:01:05 · 342 阅读 · 0 评论 -
malloc()函数与realloc()函数
<br />C语言跟内存分配方式<br /> (1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。<br /> (2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。<br /> (3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用转载 2011-01-21 00:11:00 · 768 阅读 · 0 评论 -
linux 信号量编程
linux 信号量编程 信号量可以管理资源,实现资料的互斥。如多进程下实现一块共享内存区域的互斥等。 信号量也是一种ipc机制,所以管理的方式也是用key来管理。 linux里的信号量是一个集合,每个集合里可以管理一个资源。如:一个集合里可以有n个元素,每个元素可以管理一个资源。比如编号为0的信号量0,表示资源数据为1. 这个值可以在创建信号量集合的时候设原创 2013-07-20 18:25:11 · 596 阅读 · 0 评论 -
Fedaora14 下编译xerces+icu
Fedaora14 下编译xerces+icuXerces 是解析xml的库。使用icu可以支持中文。 下载ICU和xerces软件官网是:http://www.icu-project.org/或ftp://ftp.software.ibm.com/software/globalization/icu/3.4下载icu-3.4.tgzx. 本从已经下载了ic原创 2013-05-19 16:42:15 · 1106 阅读 · 0 评论 -
一道关于free的面试题
<br />2). void Test(void){<br />char *str = (char *) malloc(100);<br />strcpy(str, “hello”);<br />free(str);<br />if(str != NULL){<br />strcpy(str, “world”);<br />printf(str);<br />}<br />}<br />请问运行Test 函数会有什么样的结果?<br />答:输出“world”<br /> <br />C并不明确禁止use-原创 2011-01-21 00:18:00 · 470 阅读 · 0 评论 -
性能分析工具gprof介绍
性能分析工具gprof介绍2012-05-20 20:59:30分类: C/C++#不知道这是在哪里找的了,感谢各位~性能分析工具gprof介绍Ver:1.0目录1. GPROF介绍 42. 使用步骤 43. 使用举例 43.1 测试环境 43.2 测试代码 43.3转载 2013-11-15 23:15:19 · 380 阅读 · 0 评论 -
const分别在C和C++语言里的含义和实现机制
const分别在C和C++语言里的含义和实现机制 const的含义 简单地说:const在c语言中表示只读的变量,而在c++语言中表示常量.C语言const是constant的缩写,是恒定不变的意思,也翻译为常量,但是很多人都认为被const修饰的值都是常量,其实这是不精确的.因为,精确来说应该是只读的变量,其值在编译的时候不能被使用,因为编译器在编译的时候不知道其存转载 2013-10-04 22:07:49 · 443 阅读 · 0 评论 -
[文件I/O]非阻塞 I/O | O_NONBLOCK
[文件I/O]非阻塞 I/O | O_NONBLOCK转自:http://www.groad.net/bbs/read.php?tid-950.html系统也可以分为:低速系统 和 其他。低速系统调用是可能会使进程永远阻塞的一类系统调用:如果数据并不存在,则读文件可能会使调用者永远阻塞( 例如读管道,终端设备,网络设备 )如果数据不能被立即接受,则写这些文件同样也会转载 2013-08-22 18:51:35 · 2227 阅读 · 0 评论 -
一篇讲解makefile的文章
一篇讲解makefile转自:http://blog.csdn.net/ugg/archive/2007/05/23/1622555.aspx概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么转载 2013-08-11 00:31:11 · 647 阅读 · 0 评论 -
makefile的和gcc参数
makefile的和gcc参数今天建个程序工程,需求了解一下makefile的和gcc参数。首先看一下我使用了makefile$cat ../rule.mk #rule.mkversion= $(shell cat $(base_dir)/VERSION | perl -pechomp)cpp= xlCcppflag = -g -q64 -D_VERSION="\"$(原创 2013-08-11 00:11:34 · 1302 阅读 · 0 评论 -
Linux环境下的C/C++基础调试技术1——初步了解
<br /> Linux环境下的C/C++基础调试技术1——初步了解(2010.12.5更新) 收藏 此文于2010-12-03被推荐到CSDN首页<br />此文于2010-12-12被推荐到CSDN首页<br />如何被推荐?<br />Author:gnuhpc <br />WebSite:blog.csdn.net/gnuhpc <br />1.调试技术的几个准则<br />惊喜准则:找到错误是一种惊喜,心理上不要畏惧而是要怀着感恩的心去面对。 <br />从小处开始准则:刚开始测试的使用从小处着手转载 2010-12-18 00:39:00 · 326 阅读 · 0 评论 -
结构体对齐
#pragma pack(n) 对齐用法详解什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对齐的作用和原因:各个硬件平台对存储空间的处理上有很大转载 2013-10-05 19:47:41 · 679 阅读 · 0 评论