2015年10月15日

EINTR错误

摘要: 慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就没有返回的保证。 EINTR错误的产生:当阻塞于某个慢系统调用的一个进... 阅读全文

posted @ 2015-10-15 19:19 Zoran_i 阅读(155) 评论(0) 推荐(0) 编辑

2015年10月13日

Linux进程理解与实践(五)细谈守护进程

摘要: 一. 守护进程及其特性 守护进程最重要的特性是后台运行。在这一点上DOS下的常驻内存程序TSR与之相似。其次,守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模等。这些环境通常是守护进程从执行它的父进程(特别是shel... 阅读全文

posted @ 2015-10-13 17:12 Zoran_i 阅读(283) 评论(0) 推荐(0) 编辑

Linux进程理解与实践(四)wait函数处理僵尸进程

摘要: Wait的背景 当子进程退出的时候,内核会向父进程发送SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态。 父进... 阅读全文

posted @ 2015-10-13 17:11 Zoran_i 阅读(259) 评论(0) 推荐(0) 编辑

Linux进程理解与实践(三)进程终止函数和exec函数族的使用

摘要: 进程的几种终止方式(Termination) (1)正常退出 从main函数返回[return] 调用exit 调用_exit或者_Exit 最后一个线程从其启动处返回 从最后一个线程调用pthread_exit (最后两点见后面博客) (2)异常退出... 阅读全文

posted @ 2015-10-13 17:10 Zoran_i 阅读(560) 评论(0) 推荐(0) 编辑

2015年10月12日

system V信号量和Posix信号量

摘要: 一、函数上的区别 信号量有两种实现:传统的System V信号量和新的POSIX信号量。它们所提供的函数很容易被区分:对于所有System V信号量函数,在它们的名字里面没有下划线。例如,应该是semget()而不是sem_get()。然而,所有的的POSIX信号量函数都有一... 阅读全文

posted @ 2015-10-12 14:18 Zoran_i 阅读(2448) 评论(0) 推荐(0) 编辑

2015年10月10日

Linux进程间通信方式--信号,管道,消息队列,信号量,共享内存

摘要: 1、概述 通信方法 无法介于内核态与用户态的原因 管道(不包括命名管道) 局限于父子进程间的通信。 消息队列 在硬、软中断中无法无阻塞地接收数据。 信号量 无法介于内核态和用户态使用。 内存共享 需要信号量辅助,而信号量又无法使用。 套接字 ... 阅读全文

posted @ 2015-10-10 18:09 Zoran_i 阅读(607) 评论(0) 推荐(0) 编辑

linux 高并发socket通信模型

摘要: ------select 1 一个误区很多人认为它最大可以监听1024个,实际上却是文件描述符的值不能大于等于1024,所以除掉标准输入、输出、错误输出,一定少于1024个,如果在之前还打开了其他文件,那会更少 2 select返回后,一般要轮询fd_set,发现新连接要加上,连接断开要去... 阅读全文

posted @ 2015-10-10 18:02 Zoran_i 阅读(620) 评论(0) 推荐(0) 编辑

信号集函数

摘要: 我们已经知道,我们可以通过信号来终止进程,也可以通过信号来在进程间进行通信,程序也可以通过指定信号的关联处理函数来改变信号的默认处理方式,也可以屏蔽某些信号,使其不能传递给进程。那么我们应该如何设定我们需要处理的信号,我们不需要处理哪些信号等问题呢?信号集函数就是帮助我们解决这些问题的。 ... 阅读全文

posted @ 2015-10-10 15:10 Zoran_i 阅读(214) 评论(0) 推荐(0) 编辑

进程间通信使用信号

摘要: 一、什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。 信号是UNIX和Linux系统... 阅读全文

posted @ 2015-10-10 15:09 Zoran_i 阅读(302) 评论(0) 推荐(0) 编辑

使用消息队列

摘要: 下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道 一、什么是消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,... 阅读全文

posted @ 2015-10-10 15:05 Zoran_i 阅读(188) 评论(0) 推荐(0) 编辑

导航