lsof(listopenfiles)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述
分类:
系统相关 时间:
2019-07-15 10:46:45
阅读次数:
144
select是不断轮询去监听的socket,socket个数有限制,一般为1024个(文件描述符为1024,该值可以修改);随着文件描述符数量增加,轮询一回成本增加。poll采用轮询方式监听,只不过没有个数限制;epoll不采用轮询方式去监听,而是当socket有变化时通过回调的方式主动告知用户进程 ...
分类:
编程语言 时间:
2019-07-13 20:00:50
阅读次数:
117
文件文件描述符 标准输入是文件描述符0。它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。 标准输出是文件描述符1。它是命令的输出,缺省是屏幕,也可以是文件。 标准错误是文件描述符2。这是命令错误的输出,缺省是屏幕,同样也可以是文件。 重定向的使用有如下规律: 1)标准输入0、输出1、错误2 ...
分类:
系统相关 时间:
2019-07-11 14:06:55
阅读次数:
127
读写文件是最常见的IO操作。python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一个,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序终结操作磁盘,所以读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后通过操作系统提供的接口从这个 ...
分类:
编程语言 时间:
2019-07-10 16:50:58
阅读次数:
163
多进程版本相对也很简单,父进程负责接收和转换套接字,接收后Fork出子进程去处理页面请求和返回所需求的页面。 首先是父进程: 父进程Accept后不对请求进行处理,而是直接关闭所连接的套接字 这是因为for后,父子进程间的文件描述符只是拷贝,他们都指向同一个套接字,对父进程来说,这个主动套接字是多余 ...
分类:
系统相关 时间:
2019-07-06 22:07:13
阅读次数:
170
一、subprocess.Popensubprocess模块定义了一个类: Popenclass subprocess.Popen( args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn= ...
分类:
其他好文 时间:
2019-07-06 13:06:03
阅读次数:
1596
ioctl, 我们在第 1 章展示给你如何使用, 是一个系统调用, 作用于一个文件描述符; 它 接收一个确定要进行的命令的数字和(可选地)另一个参数, 常常是一个指针. 作为一个使 用 /proc 文件系统的替代, 你可以实现几个用来调试用的 ioctl 命令. 这些命令可以从 驱动拷贝相关的数据结 ...
分类:
系统相关 时间:
2019-07-06 09:17:11
阅读次数:
166
1.Redis单进程: 单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率。epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能 ...
分类:
其他好文 时间:
2019-07-06 00:38:05
阅读次数:
93
一、整体大纲 二、 系统IO函数 1. 一些概念 文件描述符 PCB C库函的IO缓冲区 1) 文件描述符 int 类型 一个进程最多可打开多少文件 2) pcb 进程控制块 在其中有一个文件描述符表 -- 数组[1024] C库IO函数工作流程: pcb和文件描述符: 2. 虚拟地址空间 虚拟地址 ...
分类:
系统相关 时间:
2019-07-06 00:02:03
阅读次数:
171