#include #include #include #include #include #include #include #include #include #include #include #include #include #define MAX_LINE 16384 struct fd_... ...
分类:
其他好文 时间:
2019-01-17 01:17:16
阅读次数:
192
侦听 fd 与客户端 fd 是如何挂载到 EPFD 上去的 同样的方式,要把一个 fd 挂载到 EPFD 上去,需要调用系统 API epoll_ctl ,搜索一下这个函数名。在文件 ae_epoll.c 中我们找到 aeApiAddEvent 函数: 当把一个 fd 绑定到 EPFD 上去的时候, ...
分类:
其他好文 时间:
2019-01-15 14:01:22
阅读次数:
198
https://blog.csdn.net/jinhongdu/article/details/43413071 对于非标准的任意波特率需要用ioctl(fd, TIOCGSERIAL, p)和ioctl(fd, TIOCSSERIAL, p)的配合,ioctl的最后一个参数是struct seri ...
分类:
系统相关 时间:
2019-01-14 11:06:38
阅读次数:
153
一个生产环境,nginx占用cpu很高。 top跟进去单个线程,发现是主线程很高: gdb跟踪一下,发现大量的epoll_wait返回,中间没有任何系统调用: 查看堆栈, epoll_wait在返回有active的fd的时候,我们并没有去调用recv或者recvfrom,走查代码: 发现 wev-> ...
分类:
其他好文 时间:
2019-01-14 10:53:24
阅读次数:
340
#!/usr/bin/env python #-*- coding:utf-8 -*- ''' 统计系统内存信息 ''' with open('/proc/meminfo') as fd: for line in fd: if line.startswith('MemTotal'): MemTota... ...
分类:
编程语言 时间:
2019-01-11 17:07:27
阅读次数:
211
一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …); 其中fd就是用户程序打开设备时使用ope ...
分类:
系统相关 时间:
2019-01-03 20:42:10
阅读次数:
178
四、标准I/O与管道标准输入和输出程序:指令+数据读入数据:Input输出数据:Output?打开的文件都有一个fd:filedescriptor(文件描述符)?Linux给程序提供三种I/O设备?标准输入(STDIN)-0默认接受来自键盘的输入?标准输出(STDOUT)-1默认输出到终端窗口?标准错误(STDERR)-2默认输出到终端窗口?I/O重定向:改变默认位置把输出和错误重新定向到文件?S
分类:
其他好文 时间:
2018-12-25 01:04:28
阅读次数:
174
poll的用法和select差不多,但是select的最大文件描述符是由FD_SETSIZE限制,若要改变,那么还得修改宏定义,重新编译内核,很麻烦,但是poll可以通过 poll使用链表保存文件描述符 poll和select的缺点是一样的,仍然要采用轮询的方式 看代码 //我们这里的客户端只建立连 ...
分类:
其他好文 时间:
2018-12-20 21:34:53
阅读次数:
242
select,poll,epoll简介: select select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是: 1、 单个进程可监视的fd数量被限制,数组有大小限制; 2 、需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时 ...
分类:
其他好文 时间:
2018-12-18 23:49:02
阅读次数:
332
表头文件 #include<sys/file.h> 定义函数 int flock(int fd,int operation); 函数说明 flock()会依参数operation所指定的方式对参数fd所指的文件做各种锁定或解除锁定的动作。此函数只能锁定整个文件,无法锁定文件的某一区域。 参数 ope ...
分类:
系统相关 时间:
2018-12-18 22:44:10
阅读次数:
288