|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.03.2014, 12:46 | #1 |
Пользователь
Регистрация: 26.10.2013
Сообщений: 54
|
Подскажите как сделать так, чтобы после порождения двух дочерних процессов, процесс-отец завершался / С под Linux
Есть программа в которой процесс-отец, порождает два дочерних процесса. Подскажите как сделать так, чтобы после порождения двух дочерних процессов, процесс-отец сразу завершался. Заранее спасибо.
#include <unistd.h> #include <sys/types.h> #include <stdio.h> extern char **environ; int main() { // 1 FILE *f; if ((f = fopen("file", "w")) == NULL) { perror("Error"); return 1; } fprintf(f, "Some small text\n"); fclose(f); // 2 pid_t pid1, pid2; int status1, status2, i; switch (pid1 = fork()) { case -1: perror("Error"); return 1; case 0: // 3 environ[0] = "SHELL=/bin/sh"; f = fopen("file", "a"); for (i = 0; i < 40; i++) { if (environ[i] == NULL) break; fprintf(f, "%s\n", environ[i]); } fclose(f); break; default: switch (pid2 = fork()) { case -1: perror("Error"); return 1; case 0: // 3 environ[0] = "SHELL=/bin/zsh"; f = fopen("file", "a"); for (i = 0; i < 40; i++) { if (environ[i] == NULL) break; fprintf(f, "%s\n", environ[i]); } fclose(f); break; default: // 4 waitpid(pid1, &status1, 0); waitpid(pid2, &status2, 0); if ((f = fopen("file", "r")) == NULL) { perror("Error"); return 1; } char str[128]; while (!feof(f)) { if (fgets(str, 126, f)) { printf("%s", str); } } execl("/bin/sh", "sh", "-c", "wc -w < file", NULL); perror("Error"); } } return 0; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать так чтобы входить в оперу или хром только после введения пароля? [блондинка в шоке] | sephia | Помощь студентам | 1 | 10.03.2012 21:22 |
Как можно сделать так, чтобы дочерняя форма была поверх всех окон после наступления определённого события? | Вадим Мошев | Общие вопросы Delphi | 4 | 10.06.2011 13:01 |
Как сделать так чтобы после изменения настроек стала активирована кнопка "Применить" ?? | KWN, lnc | Общие вопросы Delphi | 7 | 04.12.2010 02:14 |
Подскажите, как сделать так, чтобы тест можно было повторно пройти не перезагружая пр | Kamikadze_666 | Помощь студентам | 2 | 23.05.2007 02:48 |