关于wave.c的问题,是否存在BUG?

我用的QNX 6.3.0。在我的程序里面借鉴了wave.c程序的例子,写了一个播音的函数。
每次调用这个函数,播放一个小的声音文件,开头播音正常,可是每次程序运行3个小时左右,就不再播放声音了。
打印出来:device open:Too many open files
这个打印信息是在执行send_pcm_preferred函数时出现的,调用send_pcm_preferred出了问题,函数数就退出了。

函数结束时,按例子的要求,对相关资源都关闭了。
我查看QNX的System Monitor信息,内存才用到一半。

有没有那位老大出现过这个问题?给个帮助,多谢了!

文件是否忘记关闭了

和例子中一样,关了相关文件,包括:
snd_mixer_close(mixer_handle);
snd_pcm_close(pcm_handle);
fclose(file1);
另外,还释放了资源:
free(mSampleBfr1);