用文件描述符打开读取文件



我使用一个有许多文件的驱动程序,每个文件我都有一个ID,当我打开这些文件时,我将文件描述符存储在包含ID和文件描述符的strcut数组中,每个打开的文件可以阻塞或不阻塞。

我想从另一个程序或程序中的其他函数中读取文件,当我尝试用它的文件描述符读取阻塞文件时,它不会仍然阻塞,直到我写它,它在缓冲区中返回没有数据,但是当我在同一函数中使用它时,它仍然阻塞。

问题在哪里?

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时,文件是打开阻塞的,但是当我从另一个函数中读取它时,它返回空数据,读取大小返回变量的最大值。

相关内容

  • 没有找到相关文章

最新更新