Chinaunix

标题: 求助:多进程对文件操作问题??? [打印本页]

作者: rocknio    时间: 2004-01-18 02:44
标题: 求助:多进程对文件操作问题???
一接口机上有一个进程,不定期的把文件ftp到主机的指定目录下,主机上有一进程死循环扫描该目录,发现有文件既读取文件内容做相应操作。由于每个文件很小,故一般情况下运行正常。偶尔会发生主机上的进程无法用fopen打开文件,我怀疑是由于在ftp还没完成的情况下去fopen文件,造成的失败,不知道我的怀疑是否正确?有什么好的办法能解决上面的问题么?往大家给个思路。
我想用fcntl函数去测试文件是否上锁,但是也要先open文件才行。
不知道还有什么好办法
作者: ldap    时间: 2004-01-18 09:26
标题: 求助:多进程对文件操作问题???
文件被别的进程上锁了也并不是不能打开,你fopen的进程,打开的文件多吗???
作者: rocknio    时间: 2004-01-18 09:41
标题: 求助:多进程对文件操作问题???
我主机上的程序的目的是,扫描从接口机上传过来的文件,对其内容做相应操作,然后生成操作结果文件送回到接口机。

昨天我加上了fopen的errno判断,现在发现是我在发现有需要操作的文件后,fopen用w方式产生返回文件的时候报error=23,too many open files的错,跟上面我估计的错误完全不一样了

我的操作步骤是,先根据读到的文件名用fopen,生成一个返回文件,
如果生成失败就直接retrun,如果生成成功,则用fopen r方式打开接口机上送过来的文件做操作,把操作结果写入返回文件里。
作者: ldap    时间: 2004-01-18 12:21
标题: 求助:多进程对文件操作问题???
1 确认你的程序fopen后有没有fclose

2 确认你的程序同时最多在打开几个文件
作者: rocknio    时间: 2004-01-18 12:53
标题: 求助:多进程对文件操作问题???
发现了一处有可能跳过fclose的地方,谢谢楼上的兄弟!!!
作者: sumland    时间: 2011-07-14 12:15
回复 4# ldap


    请问一下大侠,我如何确保文件fclose之后不再被其他的进程打开呢?还有就是fopen打开的只有一个文件,如果其他进程再执行这段代码,是不是就不会再打开新的文件了?
作者: sumland    时间: 2011-07-14 12:17
回复 2# ldap


    文件上了锁,在什么情况下可能被打开呢?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2