パイプのサイズを返す関数が必要ですSizeOfPipe()
。パイプ内のデータ量を知りたいだけで、実際にパイプ自体からデータを読み取る必要はありません。
次のコードが機能すると思いました。
fseek (pPipe, 0 , SEEK_END);
*pBytes = ftell (pPipe);
rewind (pPipe);
ただしfseek()
、ファイル記述子では機能しません。別のオプションは、パイプを読み取ってからデータを書き戻すことですが、可能であればこれを避けたいと考えています。助言がありますか?