
unix环境高级编程
gochenguowei
在工作之余,记录下自己学习的东西,并收藏一些好的文章。
展开
-
函数sync fsync 和 fdatasync 的区别
一般的unix系统实现在内核中都会设有缓冲区高速缓冲或页高速缓存。当我们从磁盘读取文件时,一般都会设置一个缓冲区,先把文件内容读取到缓冲区中,然后再从该缓冲区中读取内容。把数据写入磁盘文件时也是一样,一般都会先把数据缓存到缓存区,然后由内核启动的一个进程来定时(一般是30秒)地把内容写入到磁盘中。 而在 unix 中有这三个函数影响到文件的写入操作。下面介绍这三个函数...原创 2018-03-10 19:47:38 · 1082 阅读 · 0 评论 -
守护进程(一)
什么是守护进程? 守护进程就是linux 中的后台服务进程。它是一个生存周期较长的进程,通常独立于控制终端并且周期地执行某种任务或等待某些待处理的事件。如何查看守护进程 在终端上执行 ps -axja 表示不仅显示当前用户的进程,还显示其他用户所拥有的进程。x 显示没有控制终端的进程状态。j 显示与作业相关的信息:会话ID、进程组ID、控制终端以及终端进程组ID 而另一个相关的 ...原创 2018-03-18 18:44:38 · 305 阅读 · 0 评论 -
守护进程详解(二)
转载自:http://blog.youkuaiyun.com/lianghe_work/article/details/47659889什么是守护进程?守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是个特殊的孤儿进程,这种进程脱离终...转载 2018-03-18 18:48:38 · 239 阅读 · 0 评论 -
Linux 信号
信号在内核中的表示执行信号的处理动作成为信号递达(Delivery),信号从产生到递达之间的状态称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作注意:阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作 ①PCB进程控制块中有信号屏蔽状态字(block),信...转载 2018-03-19 21:04:57 · 149 阅读 · 0 评论 -
Linux 信号(一)
信号是一种软中断信号,是进程间通信机制中唯一的异步通信机制。 一个信号就是一条小信息,它通知进程系统中发生了一个某种类型的事件。每种信号类型都对应于某种系统事件。当系统要给某个进程发送某个信号时,一般会在PBC进程控制块的上下文中设置某个状态,以表示某个信号发生。当内核把该进程从内核模式切换到用户模式的时候(进程的上下文切换),它会检查该进程的未被堵塞的待处理的信息的集合(通常在用户...原创 2018-03-19 21:44:36 · 178 阅读 · 0 评论 -
fork 和 vfork 的区别
函数原型:#include <unistd.h>pid_t fork(void)pid_t vfork(void) 返回值:子进程返回0,父进程返回子进程ID;若出错,返回-1相同点:函数的返回值相同,都是子进程返回0,父进程返回子进程ID继承父进程的属性相同:实际用户id、实际组id、有效用户id、有效组id;附属组id;进程组id;会话id、控...原创 2018-04-01 20:39:10 · 213 阅读 · 0 评论 -
大小端的判断
我们的电脑一般分为大端和小端。所谓的大端:就是将高序字节存储在起始地址。而小端则是:将低序字节存储在起始地址。在我们的网络传输中,一律使用的是大端的字节存储方式。那我们怎么知道我们的电脑到底是大端还是小端呢? 以下代码可以判断一个电脑是否是大小端:#include <stdio.h>#include <stdlib.h>int main(void){...原创 2018-04-18 22:09:03 · 309 阅读 · 0 评论