![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux编程
劉俊
这个作者很懒,什么都没留下…
展开
-
关于“线程和fork”的一些疑问和猜想
今天在看《Unix环境高级编程》的时候卡在这一章节很久,在这里有比较多不理解的地方,于是想写篇blog来整理一下。 在“线程和fork ”这一章节中提到了这样一个问题:“在子进程内部只存在一个线程,它是由父进程中调用fork的线程的副本构成的。如果父进程中的线程占有锁,子进程同样占有这些锁。问题是子进程并不包含占有锁的线程的副本,所以子进程没有办法知道它占有哪些锁并且需要释放哪些锁原创 2012-07-11 01:01:19 · 756 阅读 · 0 评论 -
[综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统、计算机网络、设计模式一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)5. 线程的实现方式. (也就是用户线程与内核线程的区别)6. 用户态和核心态的区别。7. 用户栈和内核栈的区转载 2013-10-04 00:32:45 · 2006 阅读 · 0 评论 -
程序员技术练级攻略
文章来自 coolshell.cn,11年的文章,如今依然非常受用。月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学转载 2013-07-04 00:35:33 · 1213 阅读 · 0 评论 -
错误合集(2013-3-11更新)
今天将书上的一个实例程序实现的时候,发现问题多多。首先是书上的代码本来就有BUG,而且书上作者是抄袭中的渣渣,连抄袭也没有抄完全,再加上自己能力上的问题,在查错、发现问题、调试上花了很多时间。最令人蛋痛的是,有很多错误其实是已经错过很多次了,又或者根本不是什么技术性错误。为了更好地节省自己的时间,自己每犯一次错误就在这里记一次,总结一次,就算再忙也要。这里的错误都将以小标题的格式分开,原创 2012-02-21 19:54:37 · 2089 阅读 · 6 评论 -
《深入理解计算机系统 2nd》部分读书笔记---第9章 虚拟存储器(未完成)
进程--摘自《深入理解计算机系统 2nd》第8章 异常控制流进程提供给应用程序的关键抽象:一个独立的逻辑控制流,它提供一个假象,好像我们的程序独占地使用处理器。一个私有的地址空间,它提供一个假象,好像我们的程序独占地使用存储器系统。这两个抽象很重要,对理解《Windows核心编程 5th》和《Unix环境高级编程 2nd》两书中描述的一些机制很有帮助。虚原创 2013-03-17 15:48:13 · 3324 阅读 · 2 评论 -
《Windows核心编程 5th》读书笔记----第9章 用内核对象进行线程同步
用户模式与内核模式下的线程同步首先,先引用一下《深入理解计算机系统 2nd》第8章 “异常控制流”关于用户模式和内核模式的一段话,理清一下关于用户模式和内核模式的概念:为了使操作系统内核提供一个无懈可击的进程抽象,处理器必须提供一种机制,限制一个应用可以执行的指令以及它可以访问的地址空间范围。处理器通常是用某一个控制寄存器中的一个模式位(mode bit)来提供这个功能的,该寄存器描述原创 2013-03-16 10:49:20 · 942 阅读 · 0 评论 -
《深入理解计算机系统 2nd》读书笔记----第7章 链接
链接链接(linking)是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储并执行。链接可以执行于编译时(compile time),也就是在源代码被翻译成机器代码时;也可以执行于加载时(load time),也就是在程序被加载器(loader)加载到存储器并执行时;甚至执行于运行时(run time),由应用程序来执行。静态链接Un原创 2013-03-15 00:58:39 · 3094 阅读 · 4 评论 -
摘录-德问每周精选编程问答
前一阵子,在微博发现了一个叫做“德问”的编程问答网站,里面有不少有意思、值得思考的问题,也有让人叹为观止的解答。所以,自己想弄个博客长期记录,自己所关注领域的问题与解答。 下面的内容转自“德问:编程社交问答” 非精选,自己觉得有意思的: 1、deque的插入和删除操作会使迭代器失效么? 2、MinGw中GCC与G++的异同?3、Windows中,互斥转载 2012-11-29 00:53:42 · 953 阅读 · 0 评论 -
为学论坛“每日一题”系列---最短的包含字符串(待验证正确性)
题目:给出一个字符串,求该字符串的一个子串S,S包含A-Z中的全部字母,并且S是所有符合条件的子串中最短的,输出S的长度。如果给出的字符串中并不包括A-Z中的全部字母。如果无解输出-1。输入 串S长度 我的做法:大概做法和我之前做过的一题根本相同,参见这个:字符串的故事代码:#include#include#include#includeconst原创 2013-02-10 14:12:08 · 667 阅读 · 0 评论 -
编写简单makefile
最简单版示例:smsh1:smsh1.o splitline.o execute.o gcc -o smsh1 smsh1.o splitline.o execute.osmsh1.o:smsh1.c smsh.h gcc -c -g smsh1.csplitline.o:splitline.c smsh.h gcc -c -g splitline.cexecute.o:exec原创 2012-09-16 00:59:39 · 788 阅读 · 0 评论 -
execvp调用失败,错误信息"Bad address"的原因
测试程序:#include#include#include#define MAXFILES 10int main(int ac,char **av){ int i = 0 ; char *pszSort = "sort" ; char *sortav[MAXFILES] ; if(ac < 2) { fprintf(stdout,"Must input the原创 2012-09-16 23:46:40 · 5139 阅读 · 0 评论 -
标准I/O缓冲机制读书笔记总结和理解
缓冲标准I/O库提供缓冲的目的是尽可能减少read和write调用的次数。它也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是它的缓冲。 标准I/O提供了三种类型的缓冲:(1)、全缓冲。在这种情况下,在填满标准I/O缓冲区后才进行实际I/O操作。对于驻留在磁盘上的文件通常是由标准I/O库实施全缓冲的。 (原创 2012-07-25 18:34:01 · 1770 阅读 · 0 评论 -
各种ID总结
嗯,看书的时候,自己老是记不住那种ID对应什么作用,所以~~ 用户标识 1、用户ID:口令文件登录项中的用户ID是个数值,它向系统标识各个不同的用户。系统管理员在确定一个用户的登录名的同时,确定其用户ID。用户不能更改其用户ID。通常每个用户有一个唯一的用户ID。 2、组ID:口令文件登录项中也包括用户的组ID,它是一个数值。组ID也由系原创 2012-07-19 15:36:18 · 1489 阅读 · 0 评论 -
文件描述符、文件表项、V节点表项的一些总结
看书的时候对这三样东西把握得不太清楚,嗯,所以写篇blog来总结一下。 文件描述符(进程级别): 1)、在每个进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,可将其视察为一个矢量(数组),每个描述符占用一项。与每个文件描述符相关联的是: (a)、文件描述符标志。 (b)、指向一个文件表项的指针。(不同的文件描述原创 2012-07-12 11:26:39 · 6527 阅读 · 5 评论 -
写一下这些年看过的书(2014.7.31更新)
之前答应了啊牛要写一篇东西分享一下经验,但是却一直都没怎么动手。因为自己大学四年基本上都是摸着石头过河的感觉,也谈不上什么经验,所以也不知道自己可以写些什么。不过,后来受一位师兄的日志启发,觉得也可以分享一下自己看过的书,让师弟师妹参考一下,希望能起到一点帮助吧。 PS:水平有限,下面介绍的那些书完全是站着自己角度去写的,所以如有不妥的地方,请大家指正。 1、《C Prime原创 2014-07-06 01:18:57 · 2165 阅读 · 0 评论