我有以下代码:
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* 类型,并连接到二进制文件的标准输出。该二进制文件每隔 5 秒在其 std_out 上输出一些文本。
似乎 fread 一直阻塞,直到 cout_file 包含 buffer_max_size 个字节。这正常吗?
我希望能够在不阻塞的情况下立即读取管道中的内容。这可能吗?