次のコードがあります。
int buffer_max_size = 1024;
char* buffer = new char[buffer_max_size]
FILE* cout_file = fdopen(cout_pipe[0], "r");
while (fread( &buffer[0], sizeof(char),sizeof(char)*buffer_max_size, cout_file) != 0 )
{...}
cout_file は FILE* 型で、バイナリの stdout に接続されています。そのバイナリは、5 秒間隔で std_out にテキストを出力します。
cout_file に buffer_max_size バイトが含まれるまで、fread がブロックされているようです。それは正常ですか?
ブロックせずに現在パイプにあるものを読み取れるようにしたい..それは可能ですか?