-1
我使用一個驅動程序有很多文件,每個文件我有一個ID,當我打開這些文件時,我將文件描述符存儲在包含具有文件描述符的ID的strcut數組中打開的文件可以阻止或不阻止。用文件描述符打開讀文件
我想從另一個程序或程序中的其他函數中讀取文件,當我嘗試使用它的文件描述符讀取阻塞文件時,它不會阻塞,直到我寫入文件,它纔會返回no數據在緩衝區中,但是當我在相同的函數中使用它時,它仍然阻塞。
問題在哪裏?
if (vg_bufObj[indice].protocolType == _NO_BLOC)
vg_bufObj[indice].dev_fd = open(d_path, O_RDONLY | O_NONBLOCK);
else
vg_bufObj[indice].dev_fd = open(d_path, O_RDONLY);
vg_bufObj是結構和聲明爲extern
在其他功能我閱讀
read_size = read(vg_bufObj[indice].dev_fd, data, 8);
文件當protocolType指定_BLOC文件被打開阻塞,但是當我從閱讀另一個函數返回空數據,讀取大小返回變量的最大值。
粘貼你的代碼 - 沒有它,很難幫助 – Gravell
的代碼只是一個簡單的打開和閱讀,它是下面 – djidji