社区
C语言
帖子详情
c语言打开文件不关闭的后果?
C员外
2007-08-18 04:48:48
最近接手改造一个scounix下c语言开发的后台项目,需要频繁打开文件,代码实现过程中文件打开后竟然没有关闭!
疑惑:这个后台系统一直运行一年多也没有问题,很少重启,打开文件量也很大(每天2000次左右)啊,也没有出现打开文件失败的日志,真的很纳闷!
难道操作系统自动关闭文件l了还是操作系统支持打开文件数很大?
...全文
2119
10
打赏
收藏
c语言打开文件不关闭的后果?
最近接手改造一个scounix下c语言开发的后台项目,需要频繁打开文件,代码实现过程中文件打开后竟然没有关闭! 疑惑:这个后台系统一直运行一年多也没有问题,很少重启,打开文件量也很大(每天2000次左右)啊,也没有出现打开文件失败的日志,真的很纳闷! 难道操作系统自动关闭文件l了还是操作系统支持打开文件数很大?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
夏至夕陽
2007-08-20
打赏
举报
回复
只有一个进程打开一个文件,另一个进程又要打开这个文件的话才会报错吧
C员外
2007-08-20
打赏
举报
回复
代码确定没有close,整个系统就这个服务(单线程)在跑,在重复的读写.
因为打开的是重复的文件,打开过的文件句柄被冲掉了一直没有释放,内存泄漏.
应该会导致系统打开文件数目的极限。但我没有看到打开文件失败的日志,所以才奇怪(也许应用服务会周期性重启,这个就不知道了)。
linux打开文件数量能通过内核更改再编译或用ulimit更改,scounix刚手,还不怎么会用...
zylian
2007-08-19
打赏
举报
回复
补充楼上的,
你家可以有千万观众观看,但进去的却是只有一个
查看可以无限制,但一但修改就不行了.
iambic
2007-08-19
打赏
举报
回复
一个文件当然可以被几个进程同时访问,既然如此,被一个进程访问几次又有什么不行的。
不过如果你同时对文件读、写,会有同步的问题。
ForestDB
2007-08-19
打赏
举报
回复
呵呵,好玩。
个人觉得cceczjxy()讲的有点道理,要不就是关掉了,要不是系统资源开得非常大,这才没有memory leak出现。
Avoid
2007-08-19
打赏
举报
回复
这个就像你把家里门打开了。。。
没有贼那就没啥鸟是了。。。
shjmqqc111
2007-08-19
打赏
举报
回复
这个fopen只是缓冲打开的.不是直接的文件读写.在说只是读.没有写.应该不会出现问题.
但如果有写.不出问题才是怪事了.
cceczjxy
2007-08-18
打赏
举报
回复
fp = fopen("pp.txt","r");
fread(......);
ft = fopen("pp.txt","r");
你样当然可以了,fp,和ft不是同一个流.只是打开的文件相同而已.
楼主仔细找找,应该有其它地方关闭它.
要不就是系统内设置的进程的最大打开文件数设置的非常大,
按你说的,至少要大于800000.
这样也不是不可以.
ulimit 你可以看一下,你的设置.
gqhonesty
2007-08-18
打赏
举报
回复
刚才在VC下式了下,居然没有问题哈!
FILE *fp,*ft;
fp = fopen("pp.txt","r");
fread(......);
ft = fopen("pp.txt","r");
if(ft==NULL)
{
printf("error!\n");
}
居然没有看到error字样,我靠!
gqhonesty
2007-08-18
打赏
举报
回复
C可以不关闭文件,再打开吗?
好像不行把!
C语言
220例
7. 文件操作:
C语言
允许直接操作文件,学习如何打开、读取、写入和
关闭
文件,这对于处理大量数据或保存程序状态非常有用。 《
C语言
220例》中的每个例子都包含了问题描述,这有助于理解为什么要编写这样的代码,以及...
C语言
实战105例
6. **文件操作**:
C语言
提供了一套接口用于读写文件,例子会演示如何打开、
关闭
文件,读取和写入数据。 7. **预处理器**:预处理器指令如#define、include等,用于代码的宏定义和文件包含,例子中会有相关应用。 8...
Linux下
C语言
编程入门教程
例如,`fopen`用于
打开文件
,`fprintf`和`fscanf`用于文件的读写,最后用`fclose`
关闭
文件。 理解指针是
C语言
的难点也是亮点。指针可以让你直接操作内存,实现高效的数据处理。学习如何声明、初始化和使用指针至关...
C语言
精彩编程100例
学习文件的打开、
关闭
、读写操作,以及文件指针的概念,能够使程序具备读取和保存数据的能力。 总的来说,"
C语言
精彩编程100例"教程通过丰富的实例,让学习者在实践中掌握
C语言
的各项技能,逐步提升编程能力。无论...
C语言
实战105例源码
实例中可能会包含打开、
关闭
文件,读取文本、二进制数据,以及错误处理等技巧。 6. **预处理指令**:预处理器(#include、#define等)在编译阶段执行,用于引入头文件、宏定义等。实例中会展示预处理指令的实际应用...
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章