何时使用 snd_pcm_avail 而不是 snd_pcm_avail_update?

When to use snd_pcm_avail instead of snd_pcm_avail_update?

ALSA 函数snd_pcm_availsnd_pcm_avail_update 非常相似。大多数示例似乎都使用 snd_pcm_avail_update。什么时候应该使用 snd_pcm_avail

在我的测试程序中,使用哪个函数似乎没有什么不同。有什么区别?

snd_pcm_avail_update() 不会去内核读取最新状态,所以信息可能已经过时了。这只是一种优化,在已经更新状态的调用之后直接使用时很有用,例如 poll()snd_pcm_status().