utros 19.09.2011 13:54

Так, у меня опять линуксовопросы.
Кто-нибудь знает как работает перенаправление вывода в bash/sh?
Интересует то, как производится перенаправление i/o в файл: кто открывает дескриптор, что конкретно там происходит и как производится планирование этого i/o ядром.

1. 0x2207 19.09.2011 13:54 epsilon

open, dup, close, емнип

2. SirAnthony 19.09.2011 13:57 home

ПРИШЛО ВРЕМЯ ЧИТАТЬ ИСХОДНИКИ. ИСХОДНИКИ САМИ НЕ ПОЧИТАЮТСЯ

3. utros0x2207 /1 19.09.2011 16:39 Adium

Это системные вызовы?
Тут весь вопрос в том, какой процесс с точки зрения ядра будет писать непосредственно в выходной файл и кому нужно понизить приоритет.

4. 0x2207utros /3 19.09.2011 16:40 epsilon

не похожи? тот, который ты запустил, очевидно.

5. utrosSirAnthony /2 19.09.2011 16:41 Adium

Я уже начитался сишных исходников когда переписывал мемкеш под свои нужды.
Последний год частенько приходится ковырять исходники постгреса.
Я НЕ ХОЧУ БОЛЬШЕ!

6. utros0x2207 /4 19.09.2011 16:57 Adium

На самом деле ни разу не очевидно.

7. 0x2207utros /6 19.09.2011 17:10 epsilon

посмотри /proc/PID/fd/ если сомневаешься

8. SirAnthonyutros /5 19.09.2011 18:07 home

>переписывал мемкеш Либо ты делаешь что-то безумное, либо у тебя какие-то проблемы.

9. utrosSirAnthony /8 21.09.2011 15:59 Adium

Что-то крайне безумное и за хорошие деньги :)
Но это было давно и не правда.

10. gelraen 21.09.2011 17:48

% prog > file

шелл форкается, открывает файл на запись. Потом делает dup2 и execve, а в файл уже пишет сам процесс prog. С точки зрения ядра это выглядит как и любой другой процес записи байтиков в файл.

11. utrosgelraen /10 21.09.2011 19:53 Adium

Ок, спасибо. Тут выше уже объяснили :)

Do you really want to delete ?