Учитывая FILE*
или дескриптор файла, есть ли стандартный способ определить, сколько байтов готово для чтения?
Я не могу использовать s=ftell(f),fseek(f,0,SEEK_END),e=ftell(f),fseek(f,s,SEEK_SET),e-s
, поскольку FILE*
простооборачивая дескриптор файла, который я получил от pipe(2)
, и получаю ESPIPE
, когда я пытаюсь это сделать.приготовьте хотя бы один байт для чтения, а затем читайте байт за раз, пока select(2)
не скажет мне остановиться.Это кажется немного неуклюжим и медленным.
Есть ли лучший способ сделать это?