博客
关于我
Linux:文件句柄泄漏问题
阅读量:309 次
发布时间:2019-03-04

本文共 739 字,大约阅读时间需要 2 分钟。

Linux:文件句柄泄漏问题

产生原因

文件句柄泄漏,也叫文件描述符泄漏,当我们打开一个文件,操作系统就会给程序分配一个文件描述符,如果在使用完成之后,没有及时的关闭文件,就会造成文件句柄泄漏的问题。

进程中打开的文件数量

在Linux中,一个进程中打开的最大文件数量可以用ulimit -a查看

在这里插入图片描述
图中的open files 后面的1024为打开文件的最大数量,但是打开文件的最大数量是可以被更改的,在Linux中我们可以用ulimit -n[num]修改打开文件的最大数量。
注意:num的范围为:0~1023
验证代码:

#include 
#include
#include
int main(){ int count = 0; while(1) { int fd = open("./linux", O_CREAT | O_RDWR, 0664); if(fd < 0) { perror("open"); break; } count++; printf("fd : %d\n", fd); } printf("count : %d\n", count); return 0;}

运行结果:

在这里插入图片描述

在这里插入图片描述

注意到我们程序是从3开始打印的,而且count等于1021只是因为:0,1,2是标准输出,标准输入和标准错误,是Linux中固定的,所以开始的时候就从3开始打印,count就只有1021,因为除去了0,1,2。

转载地址:http://obmq.baihongyu.com/

你可能感兴趣的文章
不同进程共享链表方法:用共享内存创建链表
查看>>
(六)多进程实现TCP服务端
查看>>
(Mysql 二)Linux C语言显示mysql数据库中某个表的数据
查看>>
C++拷贝构造函数与浅拷贝,深拷贝
查看>>
JAVA单例模式
查看>>
qt 的模块
查看>>
AWT 窗口事件
查看>>
数组指针和指针数组
查看>>
css 画三角形箭头
查看>>
安装卸载mysql_win10
查看>>
火狐浏览器无法载入配置文件
查看>>
idea中maven工程pom.xml配置文件自动导入依赖
查看>>
idea安装可视化redis数据库查看插件
查看>>
idea安装zookeeper(zoolytic)可视化管理插件
查看>>
FRP内网穿透服务器搭建(需要外网服务器)
查看>>
LinkedList的构造函数有哪些
查看>>
java面试题之能创建volatile数组吗?
查看>>
面试题之redis的内存回收策略
查看>>
使用JD-GUI反编译报// INTERNAL ERROR //错误
查看>>
singleton模式四种线程安全的实现
查看>>