utros
19.09.2011 13:54
Так, у меня опять линуксовопросы.
Кто-нибудь знает как работает перенаправление вывода в bash/sh?
Интересует то, как производится перенаправление i/o в файл: кто открывает дескриптор, что конкретно там происходит и как производится планирование этого i/o ядром.
open, dup, close, емнип
ПРИШЛО ВРЕМЯ ЧИТАТЬ ИСХОДНИКИ. ИСХОДНИКИ САМИ НЕ ПОЧИТАЮТСЯ
Это системные вызовы?
Тут весь вопрос в том, какой процесс с точки зрения ядра будет писать непосредственно в выходной файл и кому нужно понизить приоритет.
не похожи? тот, который ты запустил, очевидно.
Я уже начитался сишных исходников когда переписывал мемкеш под свои нужды.
Последний год частенько приходится ковырять исходники постгреса.
Я НЕ ХОЧУ БОЛЬШЕ!
На самом деле ни разу не очевидно.
посмотри /proc/PID/fd/ если сомневаешься
>переписывал мемкеш Либо ты делаешь что-то безумное, либо у тебя какие-то проблемы.
Что-то крайне безумное и за хорошие деньги :)
Но это было давно и не правда.
% prog > file
шелл форкается, открывает файл на запись. Потом делает dup2 и execve, а в файл уже пишет сам процесс prog. С точки зрения ядра это выглядит как и любой другой процес записи байтиков в файл.
Ок, спасибо. Тут выше уже объяснили :)