[P&AM Lab] в процессе написания Cat

Grigoriy A. Sitkarev sitkarev на komitex.ru
Ср Дек 22 15:20:58 MSK 2010


Да, не менялся.

Но он мог быть не символьным и не блочным с самого начала.

Например, он мог быть каналом FIFO или сокетом.

$ mknod /tmp/myfifo p
$ cat - > /tmp/fifo

И дальше вводим что-то с терминала. В другом терминале выводим из канала 
FIFO на стандартный вывод.

$ cat /tmp/myfifo

Можешь проверить что будет получаться.

--
Г.А.

Илья Артеев пишет:
> пишу 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 в любом случае не символьный и не блоковый, по крайней 
> мере до этого момента в исходном коде он не менялся






Подробная информация о списке рассылки Lab