簡體   English   中英

使用文件描述符打開讀取文件

[英]open read file with file descriptor

我使用一個有很多文件的驅動程序,每個文件都有一個 ID,當我打開這些文件時,我將文件描述符存儲在 strcut 數組中,其中包含文件描述符的 ID,每個打開的文件都可以被阻塞。

我想從另一個程序或程序中的其他函數讀取文件,當我嘗試使用其文件描述符讀取阻塞文件時,它不會一直阻塞,直到我寫入它,它在緩沖區中不返回任何數據,但是當我在同一個函數中使用它時它仍然阻塞。

問題出在哪兒 ?

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);

當協議類型指定為 _BLOC 時,文件被打開阻塞,但是當我從另一個函數讀取它時,它返回空數據,讀取大小返回變量的最大值。

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);

當協議類型指定為 _BLOC 時,文件被打開阻塞,但是當我從另一個函數讀取它時,它返回空數據,讀取大小返回變量的最大值。

暫無
暫無

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

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