Linux
文章平均质量分 80
king7474974
这个作者很懒,什么都没留下…
展开
-
Linux socket通信——并发服务器(fork)
一、迭代服务器和并发服务器 迭代服务器会依次处理客户端的连接 ,只要当前连接的任务没有完成,服务器的进程就会一直被占用,直到任务完成后,服务器关闭这个socket,释放连接。 它的原型可以描述成: while(1) { new_fd = 服务器accept客户端的连接(new_fd = accept(listenfd, XX, XX)) 逻辑处理 在这个new_fd上给客户端原创 2015-04-24 10:52:42 · 7627 阅读 · 3 评论 -
Linux进程间通信——消息队列
一、前言 消息队列是一种以链表形式组织的数据结构,存放于内核中。消息队列通过唯一的IPC标识符表示。 相较于管道,消息队列更加灵活,它可以做到消息的类型的多样化。 消息队列发送的是一个自定义的数据块。 二、常用函数 1、msgbuf 首先需要了解消息队列的模板 struct msgbuf { long mtype; /*type of message原创 2015-04-29 10:04:20 · 627 阅读 · 0 评论 -
Linux进程间通信——信号
一、信号含义 怎么说咧···信号给我的感觉就是系统达到了某些特定条件产生的事件。比如说,产生中断,又比如说定时器。信号发出后,会有接收方进行处理。一个信号的产生叫生成,接收到一个信号叫捕获。 二、信号注册——signal函数 当有信号生成后,接收信号的进程要做些什么呢???这就需要与之相对应的处理程序啦! 那么,怎样把信号和处理函数关联??? 这就需要注册!当然,我也不知道其他人怎么叫这原创 2015-04-23 18:51:56 · 914 阅读 · 0 评论 -
Linux进程间通信——匿名管道
一、引言 (1)匿名管道可以实现本地的父子或兄弟进程间的通信。 (2)是半双工的,数据只能向一个方向流动,如果需要实现双方通信,使用两个管道。 二、pipe函数的使用 pipe函数的原型如下: #include int pipe(int fd[2]); 管道两端可分别用描述字fd[0]以及fd[1]来描述,需要注意的是,管道的两端是固定了任务的。即一端只能用于读,由描述字原创 2015-04-28 13:35:17 · 771 阅读 · 0 评论 -
Linux进程间通信——命名管道
一、前言 匿名管道的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之原创 2015-04-28 15:02:33 · 643 阅读 · 0 评论