当前位置: 技术问答>linux和unix
请教,关于文件句柄
来源: 互联网 发布时间:2015-05-20
本文导语: 在SOLARIS下开发,需要频繁的打开,关闭不同的文件(大约一分钟左右),程序跑了一个多小时,就报出too many open file的错误,我已在fopen和fclose时,添加计数器,出现错误时二者相差只有二十几,肯定没有超过一个...
在SOLARIS下开发,需要频繁的打开,关闭不同的文件(大约一分钟左右),程序跑了一个多小时,就报出too many open file的错误,我已在fopen和fclose时,添加计数器,出现错误时二者相差只有二十几,肯定没有超过一个进程同时能打开的句柄数。
同时,用dbx调试程序,运行到too many open file的错误时,用CTRL+C退出dbx会报出什么dbx内部错误,错误的文件号之类的错误。
是否不能如此频繁的fopen,fclose文件?谢谢!
同时,用dbx调试程序,运行到too many open file的错误时,用CTRL+C退出dbx会报出什么dbx内部错误,错误的文件号之类的错误。
是否不能如此频繁的fopen,fclose文件?谢谢!
|
ulimit -n看看设置的是多少,一般是64。
其次,在fopen时输出fileno(fp)看看是否超出64。
如果进程在运行中,可以用/usr/proc/bin/pfiles pid看看描述符打开情况。
其次,在fopen时输出fileno(fp)看看是否超出64。
如果进程在运行中,可以用/usr/proc/bin/pfiles pid看看描述符打开情况。
|
频繁的fopen,fclose文件没问题,只要及时关闭就行了。
用getrlimit()取得系统限制,
用setrlimit()重新设置限制值。
用getrlimit()取得系统限制,
用setrlimit()重新设置限制值。