ファイルを読み込んで処理して、その出力を他の処理に渡すというプログラムを作ったのですが、読み込むファイル数が一定以上になると、"Too many open files"というエラーがでて終了してしまいます。
% output = load_file(filename)

lsofで見てみると、膨大なPIPEが出てきています。
outputを他のプログラムに渡す処理をするとき、それも「1ファイルのオープン」となって、それが残ってしまっているのかなと思います。

どうやってこのファイルを消せばいいのでしょうか?