пишу cat, на основе данного нам в пример cat BSD, возник вопрос а зачен
нужна проверка
if (fstat(fileno(stdout), &statb) == 0) {
statb.st_mode &= S_IFMT;
if (statb.st_mode != S_IFCHR && statb.st_mode != S_IFBLK) {
ведь stdout в любом случае не символьный и не блоковый, по крайней
мере до этого момента в исходном коде он не менялся