随笔分类 - Unix高级环境编程读书笔记
摘要:一、记录锁 1、概念 我们首先来看记录锁,记录锁的功能是当一个进程正在读或者修改文件的某一个部分时,它可以阻止其他进程修改同一文件区。它其实是“字节范围锁”,因为它锁定的是文件中的一个区域,当然,也可能是整个文件。如下图: 记录锁其实是不同进程间进行同步的一种锁,它主要针对的是两个不同的进程,而信号
阅读全文
摘要:本来以为自己对于这方面应该还算了解了,但是昨天被人一问竟然无法明确的解释出来,解释的很挫,今天详细的整理了一下思路,总结如下:首先,我们用最简单的一句话表明:进程:程序的一次执行;线程:CPU调度的基本单位。简言之:一个程序至少包含一个进程(例如,我们打开酷狗音乐的客户端,除了客户端进程外,我们还会
阅读全文
摘要:题外话 之前在看Unix环境高级编程的时候,看完高级IO那一章,感觉自己萌萌哒,0.0 ,有点囫囵吞枣的感觉,之后翻了几篇博客,从纯系统的角度理解,稍微有了点概念,以这两篇为例,可以以后参考: http://www.cnblogs.com/Anker/p/3265058.html https://s
阅读全文
摘要:一、概念及其特征 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。 在这里,我们在Linux2.6内核的centos中,ps
阅读全文
摘要:参考博客:http://blog.csdn.net/alex_my/article/details/39494129 1. 信号概念 何为信号? 信号是一种软中断,可以由以下情形触发: -1: 用户按下某些终断键,例如ctrl + C ,这可以停止一个失去控制的程序。(ctrl + D并不是发送信号
阅读全文
摘要:终端登录 网络登录 进程组 getpgrp(void) setpgid(pid_t pid, pid_) 会话: 是一个或多个进程组的集合,通常由shell的管道将几个进程编成一组。 setsid(void) getsid(pid_t pid) 会话建立过程,简述: 其中,xinetd守护进程在监听
阅读全文
摘要:一、解释器文件 解释器文件属于文本文件,起始行形式为: #! pathname[optional-argument] 我们创建一个只有一行的文件如下: #!/home/webber/test/echoall.c foo 然后通过进程fork一个子进程execl寻找到这个文件路径下,我们将看到的是/h
阅读全文
摘要:一、函数wait和waitpid 今天我们继续通过昨天那个死爹死儿子的故事来讲(便于记忆),现在看看wait和waitpid函数。 #include<sys/wait.h> pid_t wait(int *statloc); pid_t waitpid(pid_t pid , int *statlo
阅读全文
摘要:一、函数fork #include<unistd.h> pid_t fork(void) 子进程返回0,父进程返回子进程ID,出错返回-1 fork函数被调用一次,返回两次。先返回父进程还是子进程是不确定的,取决于内核使用的调度算法。 子进程和父进程并不共享存储空间,而是共享正文段。因此,子进程对变
阅读全文
摘要:之前一直对Linux的文件类型中的 “l” 类型的了解不是很深入,最近经过“圣经”指点,略知一二,在此先记录一下,以便以后查阅,之后会对文件和目录、文件I/O这部分再扩充。 首先需明确,Unix在查阅文件类型时,首先调用的是stat函数,格式如下: int stat(const char *rest
阅读全文
摘要:学习Linux已经有2个月了,最近被期末考试把进度耽误了,前几天把Unix环境高级编程看了两章,感觉对Linux的整体有了一些思路,今天尝试着对第一章涉及到的一个简单的交互式shell编译运行一下,结果发现gcc不成功,百度了一下发现很多解决的帖子,但是都是基于第二版的,很多帖子都提到要进入apue
阅读全文