- 博客(10)
- 收藏
- 关注
原创 可执行文件的装载与进程
可执行文件的装载与进程1。进程虚拟地址空间每个进程运行起来以后,都将有一个自己的虚拟地址空间,其实这还是计算机制造出来的假象,让进程误以为此时只有它自己在运行,所有内存都只有他自己在使用,一般来说,C语言指针的大小的位数与虚拟空间的位数相同,32位平台下指针为32位,4字节。64位平台下的指针为8字节,但是有些特殊的CPU,并不是这样,暂且不考虑特殊的CPU。暂时以32位平台为例,这个
2015-07-31 11:47:33 1180
原创 线程与信号,线程与锁
#include#include#includepthread_mutex_t number_mutex = PTHREAD_MUTEX_INITIALIZER;int globvar = 0 ;void *write_p(void *arg){ while(1){ pthread_mutex_lock(&number_mutex)
2015-07-27 19:35:37 767 1
转载 线程异步信号
先容我吐槽一下《Linux C 编程实战》给这本跪了,错误就不说了,且当印刷问题吧,里边讲的东西太笼统。。。。。。。。。。。。。。。Unix下信号是个很强大的存在,但是可重入性是个比较棘手的问题,昨天在developerworks看的[那篇文章](http://www.ibm.com/developerworks/cn/linux/l-reent.html)给出了五个保证可重入性的经验。除了这
2015-07-27 10:26:13 513
转载 条件变量--讲的很基础
1.互斥量的存在问题: 互斥量是线程程序必需的工具,但它们并非万能的。例如,如果线程正在等待共享数据内某个条件出现,那会发生什么呢?它可以重复对互斥对象锁定和解锁,每次都会检查共享数据结构,以查找某个值。但这是在浪费时间和资源,而且这种繁忙查询的效率非常低。 在每次检查之间,可以让调用线程短暂地进入睡眠,比如睡眠三秒钟,但是因此线程代码就无法最快作出响应。真正需要的是这
2015-07-27 09:25:57 455
原创 readline库的安装和使用,实现shell命令自动补全
之前自己实现一个简单shell 的时候,想要实现命令行自动补全功能,于是上网查了查资料,发现多数都提到了readline( ) 库,经过仔了解后,发现其实bash 的底层实现也是调用了这个库,我的系统是 fedora 21 并没有安装这个库,且man page 中也没有相关信息,(Q:bash 调用的谁呢?)不管那末多,先无脑安转吧,边安转边看情况吧(把我害惨了。。。。。。)
2015-07-25 09:11:35 43271 1
原创 程序运行相关结构
进程在运行时的数据结构a.out及其传说gcc编译后的程序为什么叫a.out?原因:linux是在UNIX基础上开发来的,UNIX上最开始可执行程序都是汇编得来(assembleroutput)汇编程序输出。正是这个英文的缩写,所以叫a.out并且沿用至今。可执行文件的内容Linux下的可执行文件大体分为5个段,BSS段,文本段,数据段,堆,栈。
2015-07-25 08:28:54 822
原创 第一个hello word 驱动加载失败--------
今天尝试自己加载第一个驱动模块,根据惯例hello word 然后失败了,现在说明我的操作过程,请个位看看。首先我的内核版本:模块代码与MAKEFILE #include#includeMODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk("hello,world\n")
2015-07-16 20:14:15 1250 4
原创 两个很有用的进程间通信函数popen,pclose
两个很有用的进程间通信函数popen,pclose 今天起的比较晚,然后来了也不想复习,还是看书学习--写代码--写博客有意思,不敢说有多精通,至少每天都在学习新知识,不求立刻完全消化,但求每天有进步。 现在就看看这两个函数,其实都是创建一个管道到子进程,但是使用这两个函数要比昨天使用pipe() 函数简单的多。 #include FILE *popen
2015-07-13 10:44:31 917
原创 进程间通信IPC --pipe
进程间通信IPC --pipe 最近期末考试,也快考完了。三天预习一门离散数学,预习累了,没事干,外边的课也不上了。可谓是无聊头顶。于是就拿起《APUE》看看,正好随手翻到了,进程间通信--管道,那就来学习学习,复习之余也可以找找乐子,言归正传。 进线程之间通信的手段很多,公认的有13种,不清楚的自己百度吧,今天来谈谈最古老的之一管道通信,详细来说是无名管道通信
2015-07-12 20:10:03 442
原创 删除LINUX更新后多余的内核
删除LINUX更新后多余的内核本人使用的时fredoa 21 之前为了搞网卡驱动不知不觉升级了几次系统,每次启动后都有好几个内核让我选,真的很头疼阿,尤其像博主这种有点强迫的人,看着就心烦,所以就想删除多余的内核,建议保留两个内核,一个装最新的,一个是底一点版本的稳定的,双保险以备不时之需,开始想的很复杂,毕竟是内核阿,本人也想从事操作系统,内核这方面的学习,工作。但是后来想了一想,其实内核听
2015-07-07 12:14:48 5374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人