[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