Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 20.04.2013
Сообщений: 283

Процесс не дожидается выполнения дочернего

23.11.2015, 11:06. Показов 1331. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# include <stdio.h>
# include <unistd.h>
int main ()
{
char s [15]; 
int fd [2];
if (pipe (fd) <0) 
{fprintf (stdout, "\n eror"); return 0;}
if (fork () == 0)
{
 
int r = sprintf (s, "MyPid =% d", getpid ());
write (fd [1], & s, r);
return 1;
}
 
wait(NULL);
read (fd [0], & s, 15); 
 
fprintf (stdout, "\ nParent read - '% s'", s); 
close (fd [0]); close (fd [1]); 
return 1;
}
в результате вывода "Parent read -". Полученное значение не выводит. В чем беда?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2015, 11:06
Ответы с готовыми решениями:

Boost.asio io_service.run не дожидается выполнения асинхронного чтения
Добрый день! Имеется такая задача: - нужно отправялться HTTP запрос и получать ответ. все операции асинхронные (читаю через...

Результат выполнения дочернего процесса
Есть родительский процесс.Внутри создаю дочерний,который выполняет небольшую программу.Допустим просто выводит на экран какое-нибудь...

Приостановить выполнения дочернего потока
В классе ChildrenThread нужно реализовать методы для приостановки и продолжения выполнения потока. Приведенный мной пример, очень утрирован...

1
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
23.11.2015, 11:44
Лучший ответ Сообщение было отмечено Dimitrii как решение

Решение

Форматирование кода - полный пц. Тем не менее, работает.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# include <stdio.h>
# include <unistd.h>
int main ()
{
char s[15]; 
int fd[2];
if (pipe (fd) <0) 
{fprintf (stdout, "\n eror"); return 0;}
 
if (fork () == 0)
{ 
    int r = sprintf (s, "MyPid = %d", getpid ());
    write (fd[1], s, r);
    return 1;
}
 
wait(NULL);
read (fd[0], s, 15); 
 
fprintf (stdout, "\nParent read - '%s'\n", s); 
close (fd[0]); close (fd[1]); 
return 1;
}
Code
1
2
3
4
5
6
7
8
9
$ ./a.out 
 
Parent read - 'MyPid = 15776'
$ ./a.out 
 
Parent read - 'MyPid = 15778'
$ ./a.out 
 
Parent read - 'MyPid = 15780'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.11.2015, 11:44
Помогаю со студенческими работами здесь

Родительский и дочерний процесс: почему запуск начинается сразу с дочернего процесса?
Родительский процесс должен считать содержимое текстового файла и передать его дочернему процессу. Дочерний процесс в полученном тексте...

Приостановка выполнения главного приложения в момент вызова дочернего
Здравствуйте. В консольном приложении есть строка: System.Diagnostics.Process.Start(@&quot;mypr.exe&quot;); Вопрос: как приостановить...

Остановка выполнения процедуры, занимающей много ресурсов системы, из дочернего окна.
Итак... В процессе выполнения программы у меня организован поиск по рестру. В начале выполнения процедуры динамически создается окно с...

показываем процесс выполнения
Processing (ну, или как-то так). Что умеет: 1. Пишет в RTF (по идее без ограничения размера текста, правда однажды нарвался на...

Процесс выполнения Button
Доброе утро.Не подскажите как сделать процесс выполнения нажатия Button? Что то вроде этого....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru