Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
73 / 29 / 1
Регистрация: 31.07.2013
Сообщений: 433

Объясните программу, пожалуйста

19.04.2016, 16:34. Показов 818. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Что делает эта программа (в линуксе):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
main()
{
  pid_t pid;
  int rv;
  switch(pid=fork()) {
  case -1:
          perror("fork"); /* произошла ошибка */
          exit(1); /*выход из родительского процесса*/
 
  case 0:
          printf(" CHILD: Это процесс-потомок!\n");
          printf(" CHILD: Мой PID -- %d\n", getpid());
          printf(" CHILD: PID моего родителя -- %d\n",getppid());
          printf(" CHILD: Введите мой код возврата (как можно меньше):");
          scanf(" %d");
          printf(" CHILD: Выход!\n");
          exit(rv);
 
  default:
          printf("PARENT: Это процесс-родитель!\n");
          printf("PARENT: Мой PID -- %d\n", getpid());
          printf("PARENT: PID моего потомка %d\n",pid);
          printf("PARENT: Я жду, пока потомок не вызовет exit()...\n");
          wait();
          printf("PARENT: Код возврата потомка:%d\n", WEXITSTATUS(rv));
          printf("PARENT: Выход!\n");
  }
}

Где создается процесс, дочерний процесс. В каком порядке работает программа.
Извините, но текст почему то не форматируется. В частности, не работает табуляция.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2016, 16:34
Ответы с готовыми решениями:

Объясните пожалуйста программу !!!
Попросил друга решить задачу по информатике - он решил. Мне завтра надо будет её преподавателю объяснять, а я не знаю - как она работает....

Объясните пожалуйста программу
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;ctime&gt; #pragma warning(disable:4996) int** create_array(const int&amp; a) { ...

Объясните программу, пожалуйста!
Привет всем! Мне нужна очень Ваша помощь. Вот есть программа, которая считает кол-во чисел, больше предыдущего, но я не понимаю, как она...

7
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
19.04.2016, 16:49
Цитата Сообщение от proirp Посмотреть сообщение
Где создается процесс, дочерний процесс.
Вот здесь
C++
1
switch(pid=fork())
Функция fork() возвращает PID процесса-потомка родительскому процессу и нуль — процессу-потомку.
Соответственно, родитель пойдёт по ветке default, потомок по ветке 0.
0
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
19.04.2016, 17:13
proirp, для табуляции используйте " \t ".
0
73 / 29 / 1
Регистрация: 31.07.2013
Сообщений: 433
19.04.2016, 17:33  [ТС]
Цитата Сообщение от mimicria Посмотреть сообщение
mimicria
А что делают функции getpid() и WEXITSTATUS(rv)?
Про WEXITSTATUS(rv) читал в инете, но не понял, про какие 8байт говорится.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
19.04.2016, 23:05
Цитата Сообщение от proirp Посмотреть сообщение
А что делают функции getpid() и WEXITSTATUS(rv)?
getpid - возвращает pid процесса.
Цитата Сообщение от proirp Посмотреть сообщение
WEXITSTATUS(rv)?
Это макрос.
Подробнее: waitpid
Цитата Сообщение от proirp Посмотреть сообщение
про какие 8байт говорится.
8 бит, а не байт.
То бишь из кода, который вернул процесс при завершении, выдирает 8 бит.
0
73 / 29 / 1
Регистрация: 31.07.2013
Сообщений: 433
20.04.2016, 05:58  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
8 бит, а не байт.
То бишь из кода, который вернул процесс при завершении, выдирает 8 бит.
Вообще не понял...

Можете объяснить, что значит "возвращает" и "макрос"? В инете, обычно, в статьях не понятно написано.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
20.04.2016, 08:17
Вы не знакомы с макросами препроцессора?
Тогда Вам в этот блог.

Что касается возвращаемого значения, то тут... эмммм...
Вы хоть в курсе, что процессы возвращают "некий код" при завершении?
Если нет, то лучше почитать учебник... с самого начала...
0
73 / 29 / 1
Регистрация: 31.07.2013
Сообщений: 433
21.04.2016, 15:24  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Если нет, то лучше почитать учебник... с самого начала...
Я учу язык по книге Герберта Шилдта, но там ничего об этом не рассказывается.

А в каком порядке работает программа и почему используется switch?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2016, 15:24
Помогаю со студенческими работами здесь

объясните пожалуйста эту программу
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; int maximum (int mas, int i, int n) { int max; max = mas; for (i;...

Объясните пожалуйста эту программу
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #define M 10 void main() { int i,j,n,k; int m; ...

объясните пожалуйста эту программу
#include &lt;conio.h&gt; #include &lt;iostream&gt; struct STUDENT { char fio; /* фамилия и.о. */ char oc; /* 5 оценок + '\n' + '\0' */ }; ...

объясните пожалуйста эту программу
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; int maximum (int mas, int i, int n) { int max; max = mas; for (i;...

объясните пожалуйста эту программу
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #define NMAX 10 void VivMatrIStVersh (int g1, int n) { int i, j; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 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