<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2009-5-22<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1. 目录相关
etc:系统配置文件目录,其中的initable是由1号进程init解析的,也就是说init进程的启动要依赖initable
boot:系统启动相关文件夹,grub子目录,存放引导程序的配置信息等【grub.conf】
proc:系统运行时的映射,该目录下的数字子目录为当前运行的进程号,其下包含进程运行状态等信息
sbin:系统管理工具一般都放在这个目录下
usr:其下的include子目录,是应用程序首先搜索的头文件处
2. 进程管理相关
Init进程:是系统的第一个进程,它是不会终止的。它实际上是一个普通用户进程,但是以超级用户特权运行,不是内核中的系统进程
fork函数:被调用一次,但是有两次返回值。在子进程中的返回值是0,在父进程中的返回值是刚创建的子进程的进程ID号。
fork之后是父进程还是子进程先运行是不确定的,这取决于内核所使用的调度算法。
fork之所以会有两个返回值是因为:子进程复制父进程的代码段与数据段,这样【假设fork之后是父进程先运行】父进程运行过后,子进程以同样的代码运行,但是当运行到fork调用的时候,就直接返回0了。
在用fork函数创建子进程之后,子进程会调用一种exec【其有多种变形】函数以执行刚创建的子进程。
kill命令,不仅可以终止进程【需指定PID,也就是说可以终止别的进程】,还有另外一个作用就是给进程发送别的信号【除了kill之外的信号】。而raise命令只给本身调用它的进程发送信号。
守护进程创建步骤:
(1) fork,父进程退出
(2) 子进程中调用setsid,进行对该进程的剥离
(3) 调用chdir,改变工作目录,一般在根目录【“/”】下
(4) 调用unmask
(5) 调用close,以关闭从父进程继承来的文件描述符
之后,该新创建的子进程就是一个守护进程【在后台运行的进程】,它直接由1号进程init管理,也就是其PPID【父进程PID】为1
system函数:其作用是在程序执行过程中给进程以执行shell命令的机会
3. 文件操作相关
fopen类函数:其在读写文件的时候是带有缓存操作的,该类函数为C标准库函数
open类函数:其在读写文件的时候是不带缓存操作的,该类函数为POSIX标准函数。
select函数,选择等待事件的操作集。不仅仅是用于网络的,文件类操作也可以用。
4. 关于奇偶检验
奇校验:就是看2进制数的1的个数为奇数,是奇数个的话就在校验位填0,是偶数个的话就在校验位填1,目的是使1的个数变成奇数个
偶校验:就是看2进制数的1的个数为偶数,是偶数个的话就在校验位填0,是奇数个的话就在校验位填1,目的是使1的个数变成偶数个
然后传送数据,接收后在做相应的奇偶校验,判断是否有位传送错误。奇偶校验的目在于检错,而无纠错能力。有些检错方法,具有自动纠错能力.如循环冗余码( CRC )检错等。
转载于:https://blog.51cto.com/bluefish/160262