当前位置:  技术问答>linux和unix

把一个文件打开了就一直不关闭,直到进程退出

    来源: 互联网  发布时间:2016-08-04

    本文导语:  请问,这样做有什么坏处吗? | 一个进程允许打开的最多文件数是有限制的 如果你要打开很多文件就可能有的文件打不开 fd相关数据结构是由内核维护的,你不关闭,那些数据结构就会占用...

请问,这样做有什么坏处吗?

|
一个进程允许打开的最多文件数是有限制的
如果你要打开很多文件就可能有的文件打不开
fd相关数据结构是由内核维护的,你不关闭,那些数据结构就会占用内存

|
另外linux似乎还有页缓存机制,可以提供把一个文件部分缓存在内存中,减少读取硬盘时间
为了快速检索你要读写的部分是否在页缓存中,维护了一个基树
如果打开的是一个大文件,对应的内存消耗就不能忽略
如果 数据吞吐要求大的情况,这点消耗也是需要注意的

|
如果打开的是设备文件
不用了不及时关闭可能导致别的程序无法使用这个硬件设备

差不多了,就这些

|
不关闭的话,可能写入数据还在缓冲区,不知道是否会有数据丢失。

此外,会一直占用该进程下一个文件描述符,导致不必要的消耗。


|
fclose()用来关闭先前fopen()打开的文件。
此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源

|
没有大的坏处吧!!!

|
如果程序里面不是动态的会持续打开很多的文件,那么没有坏处。

|
打开文件不关闭对于进程的功能实现来说,没有问题。
但是这不是正确的做法,会浪费很多资源。

    
 
 

您可能感兴趣的文章:

  • 子进程关闭父进程打开的文件,父进程可以访问该文件吗
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • fork一个子进程后在打开一个文件,如何在子进程中使用这个打开的文件描述符号
  • 一进程源源不断地创建文件,另一进程把这些创建的文件抓取并挪走
  • UNIX系统下,进程写文件,写了很大量的文件,但是进程被KILL -9杀掉,系统可以保证写缓冲上的文件写到系统吗?
  • 在shell命令行中敲一个可执行文件,起一个进程pc,这个进程属于shell进程
  • 用kill/killall强杀进程时,如何能让该进程生成core文件?
  • 多进程mmap同一个文件,当一个进程退出时,是否需要unmap
  • 用多进程读写文件的效率为什么会远远不如一个进程直接IO的效率
  • 请教怎么根据进程输出的日记文件内容判断来重起进程?
  • 有没有办法在打开一个文件之前判断当前是否有进程在使用(读或写)该文件
  • 父子进程读写文件问题
  • 文件操作 多个进程打开文件 不加锁 情况如何
  • 问一个关于多进程同时写文件的问题?
  • 两个进程写同一个文件
  • 父子进程共享文件描述符问题
  • 多进程写文件速度问题
  • 写一个主目录下修改文件内容,用守护进程把这个动作写在日志上
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件) iis7站长之家
  • 给一个文件加了写锁,为什么子进程仍然可以read?
  • 如何从文本文件每次读入一行然后处理直到文本结束
  • pwd查看工作目录是从home/开始一直到当前文件么?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux怎么退出配置文件
  • 进程异常退出时 Unix 在什么情况下会不产生 core dump 文件?
  • exit()的退出后关闭文件的问题
  • 如何写参数,使grep在一个文件里找到了第一个符合的行后,即退出
  • 有没有一种临时文件在关闭后自动删除的?不管程序是否正常退出
  • 在退出emacs时, 如何阻止产生带有~, #的文件
  • 非阻塞打开设备文件,如果1秒read不到数据,想让read退出如何做?
  • linuxGDB里运行正常, 但非GDB运行就异常退出, 而且还不生成core文件.
  • 传输文件的程序,只有发送方退出,接受方才能接受到文件,哪里出错了
  • VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法
  • 由信号量产生的问题:能否更改操作系统的默认行为,当进程非正常退出时,都能够产生core文件?
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • 怎么统计一个文件夹下有多少个文件(不包括文件夹)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • MyEclipse如何查看和设置文件编码格式相关操作
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3