博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux:文件句柄泄漏问题
阅读量:308 次
发布时间:2019-03-04

本文共 742 字,大约阅读时间需要 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/

你可能感兴趣的文章