ubuntuで、sfl2vlの動作確認中、ライセンスファイルを用意しているにも関わらず、ライン数オーバーのエラーが出た。
straceで解析すると、どうやら、openしたファイルをクロースしても、ファイルディスクリプタが解放されていない気がする。
ファイルディスクリプタ番号がクロース後も増え続け、too many open fileでオープンが失敗する。手元の他のシステムでは問題ないので、AMD64上でia32プログラムを実行したときだけ?
今日はマシンに触れないので、確認できないが、考えてみれば、x86_64用のsfl2vlも用意していたのであった。これと動作を比較すれば、もう少し解明できそうだ。
う~む・・・
とりあえず、商用ライセンス時には、毎行ごとのライセンスファイル確認を停止し、回避するが、クロースしているのに、too many open fileってあんまりな実装だよな。
それとも、細かくopen/closeはするなってこと?