Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Linux Параллельный сервер Надо написать паралельный сервер на Си, помогите в написании https://www.cyberforum.ru/ cpp-linux/ thread889350.html C++ Linux Работа с процесса. Fork и exec. Не могу понять программу
Всем доброго времени суток. В общем, у меня есть программа, которая создаёт процессы с помощью fork и для созданных процессов, создаёт ещё одни, дочерние, в итоге мне нужно сделать программу так, что-бы пользователь мог выбрать процесс по его pid, и создать для него дочерний процесс. Я не прошу мне решить задачу, я прошу мне объяснить код, а если конкретнее, объяснить некоторые функции, какие...
C++ Linux Именованные каналы в Linux. mkfifo https://www.cyberforum.ru/ cpp-linux/ thread887875.html
Всем доброго времени суток. Друзья, где в какой книге можно почитать про Именованные каналы в Linux? только не работа с терминалом а программирование на с++.
C++ Linux Разделяемая память и семафоры для написания чата https://www.cyberforum.ru/ cpp-linux/ thread887585.html
Суть задания. Программа при первом запуске выполняет роль сервера. Все остальные запуски этой же программы - клиенты. Организовать это всё нужно с помощью разделяемой памяти. Проблема в том, что не понятно как синхронизировать запущенные процессы между собой, чтобы не было, допустим одновременной записи в сегмент памяти. Код такой (он ужасен, знаю): #include<unistd.h> #include<stdio.h>...
C++ Linux Процессы и сигналы (выдает ошибки)
Здравствуйте уважаемые программисты, необходимо было написать программу: Процесс 1 открывает файл и после этого порождает потомка 2, который в свою очередь порождает потомка 3. Процесс 2 пишет N байт в общий файл, посылает сигнал процессу 3, который тоже пишет N байт в файл и посылает сигнал процессу 1, который считывает данные из файла и выводит их на экран. Я написал, но выдает много ошибок....
C++ Linux Запись в поток Вот такое дело, написал код: #include<clocale> #include<stdio.h> #include <unistd.h> #include <string> #include <unistd.h> #include <iostream> #include <stdlib.h> #include <sys/types.h> #include <sys/wait.h> https://www.cyberforum.ru/ cpp-linux/ thread887084.html
C++ Linux Работа с процессами https://www.cyberforum.ru/ cpp-linux/ thread886515.html
Привет друзья! Необходимо написать диспетчер процессов. Суть: 1. При вводе 'p' отображается дерево вида: 2. При вводе 'k PID' удаляется процесс и все его потомки. код: #include <stdio.h> #include <stdlib.h>
Сортировка большого объёма данных C++ Linux
Ребята, очень нужна ваша помощь! Как можно отсортировать большое количество слов в файле (около ~ 60 тыс.)? #include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <string.h> int main(void) { struct timeval{long tv_sec; long tv_usec;}; struct timezone{int tz_minuteswest; int tz_dsttime;};
C++ Linux Вывести главную диагональ матрицы через функцию и указатель Помогите я не знаю как вывести главную диагональ через функцию и указатель помогите пожалуйста #include <stdio.h> #include <math.h> int main(void) { https://www.cyberforum.ru/ cpp-linux/ thread885374.html C++ Linux Элементарный переводчик с английского на русский Помогите, пожалуйста, написать программу, которая использует словарь для перевода. Программа принимает на вход 3 файла в формате *.txt: 1. Исходный текст 2. Словарь 3. Результат работы переводчика https://www.cyberforum.ru/ cpp-linux/ thread885364.html
C++ Linux С++ под Linux, процессы fork() и каналы
Вот такая штука... Нужно, так сказать, организовать общение между процессами через полудуплексный неименованный канал =) Научился передавать между процессами одно чилсо... Но не получается передать массив =( Вот что делаю, когда передаю одно число: int fd; char s; if(pipe(fd)<0) { printf("Не удалось создать кaнал!"); return 0; } if(fork()==0)
C++ Linux При запуске программа выпадает с ошибкой https://www.cyberforum.ru/ cpp-linux/ thread884123.html
Подскажите почему программа при запуске завершается с ошибкой? Народ никак не могу разобраться в причинах падения проги. Все файлы прилагаю во вложении. Сборка происходит нормально без всяких предупреждений. Запускаю прогу вот так: ls -l | ./main > 18_output
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
0

Создать новый процесс из дочернего - C++ Linux - Ответ 4663628

03.06.2013, 20:32. Показов 739. Ответов 0
Метки (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. В общем, в чём проблема: имеется программа, которая создаёт процессы вызовом fork, и затем процессу ребёнку передаётся управление другой программой, посредством execlp, и этот ребёнок, создаёт ещё свои процессы, в зависимости от того, какой уровень вложенности задан(определяется при запуске программы) вот кусок кода который отвечает за это:
C
1
2
3
4
5
6
7
//parent
    for(i=0;i<n;i++)
    {
        pid[i]=fork();
        if (pid[i]==0)
            printf("%d\n",execlp("/home/skorik/procces/child",argv[2],NULL));
    }
C
1
2
3
4
5
6
7
8
9
10
11
12
13
//child
int main(int argc, char **argv)
{
    sscanf(argv[0],"%d",&level);
    //printf("I'm CHILD, my PID = %d. Is my parent PID = %d\n",getpid(),getppid());
    if (level>1)
    {
        char s[20];
        sprintf(s,"%d",level-1);
        pid=fork();
        if (pid==0) 
            execlp("/home/skorik/procces/child",s,NULL);
    }
В итоге получается такое дерево
parent->
111->112->113
121->122->123
211->212->213
если задать уровень вложенности 3.
Мой вопрос: как например создать ещё один дочерний процесс для номера 213?

Вернуться к обсуждению:
Создать новый процесс из дочернего C++ Linux
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2013, 20:32
Готовые ответы и решения:

Процесс не дожидается выполнения дочернего
# include &lt;stdio.h&gt; # include &lt;unistd.h&gt; int main () { char s ; int fd ; if (pipe (fd) &lt;0) ...

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

По таймеру запускать новый процесс
Как по таймеру автоматически должен появляться новый процесс?? Допустим у меня идет таймер через...

Передача данных в новый процесс
Запускаю процесс из основной программы Process.Start(). Как задать из основной программы значения...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2013, 20:32
Помогаю со студенческими работами здесь

Создать дочернее окно дочернего окна
Проблема такая. Нужно создать дочернее окно дочернего окна. Вот тут создается одно дочернее окно...

Новое окно, новый процесс проводника
увидел, что можно открыть проводник, как в новом окне, так и в новом процессе. для чего это? в...

Как изменить текст на форме из дочернего потока, когда в основном потоке ожидается завершение дочернего
Идея следующая. в основном потоке вызывают метод класса в другом потоке. Причем необходимо: 1....

Создать событие для дочернего элемента tabPage
Граждане-товарищи, обращаюсь к вам вот с какой проблемой: Есть tabControl, есть возможность...

Как определить самый новый процесс и завершить его?
привет. не подскажете как завершить самый новый процесс, необходимо сделать ч/з kill -9 может с...

Автоматизировать процесс создания новых листов, где каждый новый является копией первого
Есть экселевская таблица, на первом листе есть шесть столбцов, название, интернет ссылка, +4...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru