本节讲解什么是非阻塞IO,如何将文件描述符修改为非阻塞式 3.6.1.1、阻塞与非阻塞 (1)阻塞是指函数调用会被阻塞。本质是当前进程调用了函数,进入内核里面去后,因为当前进程的执行条件不满足,内核无法里面完成操作,就挂起这个进程,去执行其他进程。默认使用阻塞IO (2)非阻塞IO当条件不满足时直接 ...
分类:
其他好文 时间:
2018-06-29 21:05:40
阅读次数:
163
线程和进程之间的联系和区别: 线程拥有自己的线程id,一组寄存器值,调度优先级和策略,线程栈,除此以外,线程共享进程的所有资源,如堆、文件描述符、进程的代码段、全局变量区(静态局部变量、全局变量)。进程是系统资源分配的基本单位,线程是CPU调度的基本单位。 在只有一个线程的情况下,进程和线程非常相似 ...
分类:
编程语言 时间:
2018-06-27 20:06:23
阅读次数:
162
Posix共享内存有两种非亲缘进程间的共享内存方法:1). 使用内存映射文件,由open函数打开,再由mmap函数把返回的文件描述符映射到当前进程空间中的一个文件。2). 使用共享内存区对象,由shm_open打开一个 Posix IPC名字。再由mmap把返回的描述符映射到当前进程的地址空间。Po ...
分类:
系统相关 时间:
2018-06-25 22:54:02
阅读次数:
299
select,poll,epoll都是IO多路复用的机制。 I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行 ...
分类:
其他好文 时间:
2018-06-25 12:54:46
阅读次数:
164
文件读写 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提 ...
分类:
其他好文 时间:
2018-06-24 11:38:26
阅读次数:
129
强制删除文件是很常见的数据恢复故障。在强制删除文件后如何恢复数据就显的尤为重要了,首先我们需要明白,在强制删除文件后不能往要恢复的误删文件所在的分区,存入任何新的文件,否则数据覆盖了就无力回天了。接下来我们还需要了解下具体如何恢复强制删除文件的数据,具体请看正文了解。
分类:
其他好文 时间:
2018-06-23 10:32:48
阅读次数:
216
重定向 dup2 int dup(int fd) 重定向文件描述符 int newFd = dup(STDOUT_FILENO) newFd 指向 stdout int dup2(int fd1, int fd2) 重定向文件描述符 dup2(newFd, STDOUT_FILENO) stdout ...
分类:
其他好文 时间:
2018-06-23 01:35:46
阅读次数:
156
标准文件库 查询文件属性<sys/types.h><sys/stat.h>int stat(const char *filename, struct stat *buf)获取文件属性int fstat(int fd, struct stat *buf)功能同stat,但是入参是文件描述符int ls ...
分类:
其他好文 时间:
2018-06-23 01:35:38
阅读次数:
177
多路复用 select 同时监控多个文件描述符的输入输出 <sys/types.h> <sys/times.h> <sys/select.h> int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, str ...
分类:
其他好文 时间:
2018-06-23 01:24:34
阅读次数:
144
lsof 简介 __ __(list open files)是一个列出当前系统打开文件的工具。在linux环境中一切皆文件,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符, ...
分类:
其他好文 时间:
2018-06-21 23:41:54
阅读次数:
183