随笔分类 - linux
摘要:一、Select:1. 背景select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个FD(File Descriptor, 文件描述符/句柄)的数组。当select()返回后,该数组中就绪的FD便会被内核修改标志位,使得进程可以获得这些FD而进行后续的读写操作。2. 优点select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一。3.限制3.1 Socket数量限制select的一个缺点在于单个进程所打开的FD是有一定限制的。select的本质是采用32个整数的32位,即存在32*32= 1024
阅读全文
摘要:在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024表示select最多同时监听1024个fd,当然,可以通过修改头文件再重编译内核来扩大这个数目,但这似乎并不治本。epoll的接口非常简单,一共就三个函数:1. int epol
阅读全文
摘要:有许多情况下,我们需要查看一个进程当前打开了哪些文件,反过来我们也希望知道某一个文件正在被哪些进程所读写。在Linux下有许多有用的工具可以帮我们完成这两个工作,下面介绍这两个工具:lsof与fuser。 fuser find files or sockets' user 格式:fuser [选项] fname -k 如果找到打开文件的进程,则发送SIGKILL杀死此进程,通过-i选项,可以为用户提供交互选择 -signal 用户可以指定使用何种信号去kill进程,如果-k参数指定,则忽略此参数 -m 如果指定一个文件,则所有访问那个文件所在文件系统的进程都会被列出来 -n type
阅读全文
摘要:常用插件:minibufexpl.vimtaglist.vimwinfileexplorer.vimwinmanager.vimwintagexplorer.vim12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810
阅读全文
摘要:xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs的实用例子。1.当你尝试用rm删除太多的文件,你可能得到一个错误信息:/bin/rmArgumentlisttoolong.用
阅读全文
浙公网安备 33010602011771号