簡體   English   中英

ioctl返回帶有全局數組的錯誤地址

[英]ioctl return bad address with global array

我正在基於此文章研究ALSA: http : //equalarea.com/paul/alsa-audio.html#interruptex (最小的中斷驅動程序)

注意short buf[4096]; 如果我們將其聲明為全局,則會提示錯誤地址錯誤。 如果我們將其聲明為int playback_callback (snd_pcm_sframes_t nframes)的本地int playback_callback (snd_pcm_sframes_t nframes) ,則它將運行,有時會提示錯誤地址錯誤。 如果我們使用malloc分配buf ,則錯誤消失了。

從源代碼snd_pcm_writei可以看到,它調用ioctl將緩沖區發送到設備。 那么,為什么ioctl表現得像我描述的那樣?

我正在使用Ubuntu 14.04 64位

該程序是越野車。

buf有足夠的空間來存儲4096個樣本,但是設備為每幀配置了兩個樣本,因此4096幀將使緩沖區溢出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM