【文件描述符】
Linux下,通常通过open打开一个文件,它然后返回给我们一个整数,通过这个整数便可以操作文件,这个整数我们称文件描述符(fd)。对应被打开的文件,它也是一种系统资源,那么fd打的能打开多少个文件呢?可以通过这两个命令查看
ulimit –n //查看系统打开文件的数据
ulimit –n 数值 //将打开文件修改为数值大小。
什么决定系统到底能打开多少文件?
是一个叫file-max的配置文件决定的。可以通过 cat / proc/sys/fs/file_amx 查看文件打开数目的最大值 (1G大小相当于可打开10万个文件)
【open函数】有两种
①int open(const char* pathname , //打开文件名
int flag) O_RDONLY //只读
O_WRONLY //只写
O_RDWR //读写
O_CREAT //打开的同时创建(如果文件存在就不创建)
O_TRUNC //打开时清除文件内容
O_EXCL
//若O_CRETE和O_EXCL被设置且文件存在,open调用失败
O_NDELAY //延迟读写标记
②int open(const char* pathname, //文件路径
int flags,
// 与前面相同
mode_t mode);
//文件存取权限标志 如 666;
注意:参数flag必须在O_RDONLY,O_WRONLY,O_RDWR中有且只能选取一个,然后用"|"符合于其他标准组合(相当于或起来)。函数调用成功时返回打开的文件描述符,失败返回-1.