![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 78
Hi_zkr
和大家一起学习,一起分享。
展开
-
Linux之用信号量实现的共享内存机制
首先介绍一个概念IPC IPC(Inter-Process Communication)机制即进程间通信机制,我们最为熟悉的IPC机制有三种,即信号量、共享内存和消息队列。今天要介绍的共享内存机制就是IPC三大机制之一。 一.共享内存先知 共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方法,它允许两个不想管的进程访问同意逻辑内存,虽然X/Open标准并没有对它做出要求,但是大多数...原创 2018-03-09 16:59:19 · 2201 阅读 · 1 评论 -
Linux之消息队列机制
一.消息队列先知 其实,消息队列与命名管道有很多相似之处,但少了在打开和关闭管道方面的复杂性。但使用消息队列应为解决我们在,命名管道时遇到的一些问题,比如管道的阻塞问题。 消息队列提供了一种子啊两个不想管的进程之间传递数据的相当简单且有效的方法,与命名管道相比,消息队列的优势在于,它独立于发送和接收进程而存在。 消息队列提供了一种从一个进程想另一个进程发送一个数据块的方法。每个数据块都被认为...原创 2018-03-09 19:39:33 · 4353 阅读 · 0 评论 -
Linux之访问internet上的web服务器(HTTP的应用)
关于http的理论知识可以点这里 http.c的代码展示:#include<stdio.h>#include<stdlib.h>#include<fcntl.h>#include<assert.h>#include<unistd.h>#include<string.h>#include<arpa/ine...原创 2018-04-12 14:34:33 · 1950 阅读 · 0 评论 -
IO复用之select系统调用
一.IO复用 io复用使得程序能够监听多个文件描述符。 以下情况下需要使用io复用: 1.客户端同时处理多个socket(如:非阻塞的connect技术); 2.客户端程序需要同时处理用户输入和网络连接(如:聊天室程序); 3.TCP服务器要同时处理监听socket和连接socket; 4.服务器要同时处理TCP请求和UDP请求(如:回射服务器); 5.服务器同时监听多个端口,或者处...原创 2018-04-22 18:48:25 · 417 阅读 · 0 评论 -
IO复用之epoll系统调用
IO复用的第三个系统调用就是epoll。 epoll并不是由一个函数来实现,而是一组函数。 一.epoll()函数 **I.**epoll函数的创建:#include<sys/epoll.h>int epoll_create(int size);唯一参数size只是给内核一个提示,告诉它需要多大的事件表;**II.**epoll内核事件表的操作:#inc...原创 2018-04-22 22:17:30 · 231 阅读 · 0 评论 -
IO复用之poll系统调用
poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。 一.poll()函数#include&l...原创 2018-04-22 21:11:44 · 287 阅读 · 0 评论 -
IO复用之select、poll和epoll的区别
查看select、poll和epoll的实现请看这里: select的实现:https://blog.csdn.net/qq_39110766/article/details/80041451 poll的实现:https://blog.csdn.net/qq_39110766/article/details/80042768 epoll的实现:https://blog.csdn.net/qq...原创 2018-04-23 10:38:57 · 197 阅读 · 0 评论 -
linux之进程间五种方式的对比
1.管道( pipe ): 管道:分为有名和无名管道。 有名管道:可以发生在任意2个进程之间。通过mkfifo系统命令或者mkfifo()系统调用来创建出来一个供2个进程进行数据通信的管道。 对管道的访问类似于对文件的访问。也是调用系统函数open,read,write,close来管理管道。 无名管道:只可以发生在父子进程间。通过调用pipe来创建读端和写端。Fd[0]是读端,fd[1]...原创 2018-07-25 20:14:24 · 226 阅读 · 0 评论