Проблема в следующем: открываем какой нибудь файл: FILE* log; log=fopen("my-log","w"); fprintf(log,"begin of file\n"); ... Потом создаем дочерний процесс: if(pid=fork()) { fprintf(log,"Pid = %d\n",pid); exit(0) } Потом создаем еще несколько таких же процессов. Процесс - родитель завершаем следующим образом: ... fprintf(log,"End of file\n"); fclose(log); В результате получаем содершимое файла log: begin of file begin of file Pid=1051 begin of file Pid=1052 ... begin of file Pid=n End of file По моему это происходит из-за того, что файл log, открытый в родительском процессе, просто закрывается каждый раз при смерти дочернего процесса и все его содержимое заново сохраняется (в т.ч. и строка begin of file). Не подскажет ли глубокоуважаемый all каким образом этого можно избежать, или как запускать дочерний процесс не передавая ему дескрипторы НЕКОТОРЫХ открытых в родительском процессе фалов без вмешивания exec. Заранее спасибо
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум fork()+exec()+pipe() (2016)
- Форум создание дочерних процессов_ (2010)
- Форум Сигналы. (2013)
- Форум проблема с чтением из FIFO (2024)
- Форум Отучить дочерний процесс наследовать файловые дескрипторы (2020)
- Форум Запись в файловый дескриптор дочернего процесса (2022)
- Форум Дочерние процессы (2002)
- Форум Не то зомби, не то - нет ... ??? (2003)
- Форум Нюансы запуска процессов через system/exec (2020)
- Форум Завершение дочерних процессов (2015)