lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,...
分类:
系统相关 时间:
2015-11-24 12:27:35
阅读次数:
161
SOCKET()我们使用系统调用socket()来获得文件描述符:#include#includeint socket(int domain,int type,int protocol);第一个参数domain设置为“AF_INET”。第二个参数是套接口的类型:SOCK_STREAM或SOCK_DG...
分类:
其他好文 时间:
2015-11-21 21:05:55
阅读次数:
210
简单归纳:fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp。文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用;而流(如: fo...
分类:
系统相关 时间:
2015-11-21 18:22:24
阅读次数:
235
两个各自独立的进程各自打开同一个文件,则每个进程都有各自的文件表项。这是因为每个进程都有它自己对该文件的当前偏移量。但是对一个给定的文件只有一个v节点表项。lseek()只修改文件表项中的当前文件偏移量,没有进行任何IO操作。可能有多个文件描述符指向同一个文件表项,比如fork()出的父子进程。两个...
分类:
其他好文 时间:
2015-11-21 18:14:47
阅读次数:
191
首先还是来看常见的select和poll。对于网络编程来说,一般认为poll比select要高级一些,这主要源于以下几个原因:poll() 不要求开发者计算最大文件描述符加一的大小。poll() 在应付大数目的文件描述符的时候速度更快,因为对于select()来说内核需要检查大量描述符对应的fd_s...
分类:
其他好文 时间:
2015-11-20 17:38:48
阅读次数:
127
1.先从各自使用的多路复用IO模型说起:select模型:(apache使用,由于受模块等限制,用的不多)单个进程能够监视的文件描述符的数量存在最大限制select()所维护的存储大量文件描述符的数据结构,随着文件描述符数量的增长,其在用户态和内核的地址空间的复制所引发的开销也会线性增长由于网络响应...
分类:
Web程序 时间:
2015-11-19 16:19:37
阅读次数:
129
关闭系统不必要的服务;关闭selinux,关闭iptables;关闭ctrl+alt+del重启;设置ssh端口,关闭DNS解析;设置系统最大文件描述符;设置系统关键文件权限;配置安装ntp;安装vim;配置安装阿里云yum源和epel源;#!/bin/bash#writtenbymofansheng@2015-11-03#systemoptimizationsc..
分类:
系统相关 时间:
2015-11-13 23:42:14
阅读次数:
575
#!/bin/bash 最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的。废话少说,linux中使用文件描述符来标识每个文件对象。文件描述符为一个非负整数,可以唯一标识会话中打开的文件。每个过程最多可以有9个文件描述符。 linux使用的标准文件描述符: 标准输入STDIN就是0,...
分类:
系统相关 时间:
2015-11-10 22:21:50
阅读次数:
263
第十章.系统级I/O10.1 Unix I/O一个Unix文件就是一个m个字节的序列,所有的I/O设备,都被模型化为文件,而所有的输入和输出都被当作对应文件的读和写来执行。这种简单优雅的方式叫做UnixI/O。①打开文件 描述符:0,标准输入 1,标准输出 2,标准错误②改变当前文件位置 初始为0,...
分类:
其他好文 时间:
2015-11-09 01:39:55
阅读次数:
169
第10章 系统级I/OI/O:在主存和外部设备之间拷贝数据的过程。10.1Unix I/O一个Unix文件就是一个m个字节的序列: B0,B1,B2…Bk…B(m-1)1.所有的输入输出都能以一种统一且一致的方式来执行:(1)打开文件a.描述符:内核返回一个小的非负整数,它在后续对此文件的所有操作中...
分类:
其他好文 时间:
2015-11-08 17:53:38
阅读次数:
198