2016-10-03 11 views
-1

私は、これらのファイルをオープンすると、ファイル記述子を持つ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は私がprotocolTypeが_BLOC指定されている場合、ファイルが開いてブロックしているが、私はからそれを読んだとき

read_size = read(vg_bufObj[indice].dev_fd, data, 8); 

でファイルを読み込む構造体であり、他の関数内でextern

を宣言別の関数は空のデータを返し、読み込みサイズは変数の最大値を返します。

+4

あなたのコードを貼り付ける - それを助けるのが難しいのではない – Gravell

+0

コードは単純に開いて読んで、それは下にある – djidji

答えて

0
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は私がprotocolTypeが_BLOC指定されている場合、ファイルが開いてブロックしているが、私はからそれを読んだとき

read_size = read(vg_bufObj[indice].dev_fd, data, 8); 

でファイルを読み込む構造体であり、他の関数内でextern

を宣言別の関数は空のデータを返し、読み込みサイズは変数の最大値を返します。

関連する問題