Linux
狮王zs
这个作者很懒,什么都没留下…
展开
-
epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linu...转载 2018-06-15 17:24:45 · 137 阅读 · 0 评论 -
Linux /proc/pid目录下文件的含义
attr:进程的属性 cmdline:启动进程时执行的命令 cwd:指向进程当前工作目录的软链 environ:进程执行时使用的环境变量,文件内容使用null字节('\0')分隔,然后以null字节结束。因此获取进程使用的环境变量使用如下:(cat /proc/pid/environ; echo) | tr '\000' '\n' fd: 此目录包含进程打开的所有文件,文件名为文件描述符,目录中每...转载 2018-06-15 17:25:44 · 583 阅读 · 0 评论 -
关于/proc/进程idpid/fd
当创建好epoll句柄后,它就是会占用一个fd值,在linux下如果查看/proc/进程id/fd/,是能够看到这个fd的,所以在使用完epoll后,必须调用close()关闭,否则可能导致fd被耗尽。epoll创建的fd是: lrwx------ 1 root root 64 Aug 20 11:04 3 -> anon_inode:[eventpoll]这种类型的inode,是epoll...转载 2018-06-15 17:28:29 · 13764 阅读 · 0 评论 -
linux中fork()函数详解
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不...转载 2018-06-15 17:44:09 · 129 阅读 · 0 评论 -
我读过的最好的epoll讲解--转自”知乎“
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从soc...转载 2018-06-19 09:42:10 · 245 阅读 · 0 评论