у каждого процесса? или они одни на все процессы
У каждого процесса вообще свои, но смотрят на один девайс ls -l /dev/std* А делает это ядерный вызов, но никто не мешает после форка эти дескрипторы поменять куда вам надо, например в файл
один девайс это например терминал?
Я написал команду чтобы узреть связь ж
Fd 0 1 2 это стандартные потоки ввода вывода. Это просто файловые дескрипторы
спасибо), я почитаю что это)
ничего что этот один на всех "device" /dev/std* это symlink на /proc/self который для каждого процесса свой ? Ну и STDIN/STDOUT не открываются, а наследуются от родителя, поэтому у процессов по дефолту общие STDIN/STDOUT а не свои. Ну и перенаправление STDIN/STDOUT делают до форка в родителе, переоткрытие STDIN/STDOUT в самой программе ломает перенаправление и пайпы в шелле.
Наоборот ж - свой fd0 смотрит на один девайс
fd0 в child и parent это один и тот же fd. Со всеми аттрибутами и filepos.
Я так и написал что после форка можно другой назначить
ты написал "У каждого процесса вообще свои".
Дескриптор свой, копия . Хошь - меняй, на других не будет воздействия - эт так над читать
что же ты несешь бедолага.
Открой сорцы ядра и убедись (там dup2)
что же ты несешь опять?
Обсуждают сегодня