一、基本概念 线程:在进程中负责执行代码的一个单位,进程的一部分,一个进程至少要有一个线程,也就是主线程,当然一个进程也可以有多个线程,这就需要创建了,下面会讲到线程的创建。 进程中的代码段、只读段、全局段、静态数据段、堆、命令行、环境变量表、文件描述符、信号处理函数等这些资源对于线程来说都是共享的 ...
分类:
编程语言 时间:
2018-08-02 20:35:32
阅读次数:
126
比较poll() 与select()尽管poll()和select()所做的是相同的工作,不过poll()优于select(),原因: 1.poll()不需要用户计算并传递作为参数的最高编号的文件描述符的值+1 2.poll()的效率优于采用最大值的文件描述符的做法.例如,你以select()来查看 ...
分类:
其他好文 时间:
2018-08-02 01:59:25
阅读次数:
126
2018-08-01 (星期三)poll(): 每个pollfd结构可用于指定一个要查看的文件描述符.events字段:该文件描述符所要查看事件的位掩码.(位掩码是什么?)revents字段:该文件描述符所目击事件的位掩码,内核会在返回时设置此字段.events字段中所要求的事件可能会从revent ...
分类:
其他好文 时间:
2018-08-02 01:52:00
阅读次数:
160
http://www.cnblogs.com/alex3714/p/4372426.html 首先列一下,sellect、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返 ...
分类:
其他好文 时间:
2018-08-01 23:51:28
阅读次数:
176
fcntl系统调用可以用来对已打开的文件描述符进行各种控制操作以改变已打开文件的的各种属性 函数原型: #include<unistd.h> #include<fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long a ...
分类:
其他好文 时间:
2018-08-01 19:38:56
阅读次数:
194
http://www.cnblogs.com/alex3714/articles/5876749.html 一 概念说明 在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32 ...
分类:
其他好文 时间:
2018-07-31 19:29:57
阅读次数:
213
概述 System V IPC引入了3中通信方式,本文主要介绍消息队列 System V IPC不再以文件的形式存在,因此没有文件描述符这个东西,但是它有类似的“标识符”。完全可以认为这个“标识符”就是文件描述符的替代者,但是它是专门给System V IPC使用的,所以我们不能使用文件IO函数来操 ...
分类:
其他好文 时间:
2018-07-30 21:25:16
阅读次数:
161
tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止 tail -F 等同于--follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪 tail -F 相当于 ...
分类:
其他好文 时间:
2018-07-30 19:03:24
阅读次数:
532
文件描述符 缩写 描述 0 STDIN 标准输入 1 STDOUT 标准输出 2 STDERR 标准错误 1. STDIN 可以来自键盘,可以来自重定向文件输入。 1 [Hermioner@localhost Documents]$ cat 2 a #从键盘输入 3 a #输出 4 b #从键盘输入 ...
分类:
系统相关 时间:
2018-07-29 17:55:11
阅读次数:
391
linux内核将所有外部设备看做一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令,返回一个文件描述符fd,对一个socket的读写也会有相应的文件描述符,文件描述符就是一个数字,指向了内核中的一个结构体。 I/O模型: 阻塞 在进程空间中调用recvfrom,其系统调用直到数据包到达且被 ...
分类:
其他好文 时间:
2018-07-28 12:01:24
阅读次数:
130