• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Создание 3 Процессов

  • Автор темы silverhawk90
  • Дата начала
S

silverhawk90

Данная программа должна создавать 3 процесса:
1 процесс: p1=n+2
2 процесс: p2=k+5
3 процесс: p3=n+k
родитель: c=p1+p2+p3
n и k вводятся.
Процессы p1,p2,p3 считают правильно, но когда очередь доходит до родителя то он не правильно считает, наверное потому что он не получает значения p1,p2,p3.
s1,s2,s3 - pid'ы потомков.
Скажите, пожалуйста, что я неправильно написал.
Выполняется под Unix.

C++:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
void exit_failure(void)
{
printf("Descendant don't create!\n");
}
int main (void)
{
int k,n;
double c,p1,p2,p3;
printf("Enter k: ");
scanf("%d",&k);
printf("Enter n: ");
scanf("%d",&n);
pid_t s1,s2,s3;

s1=fork();
if(s1==0) //descendant
{
p1=n+2;
printf("des1 p1=%f\n",p1);
exit(1);
}
else if(s1>0) //parent
{
s2=fork();
if(s2==0) //descendant2
{
p2=k+5;
printf("des2 p2=%f\n",p2);
exit(2);
}
else if(s2>0) //parent
{
s3=fork();
if(s3==0) //descendant3
{
p3=n+k;
printf("des3 p3=%f\n",p3);
exit(3);
}
else if(s3>0) //parent
{
waitpid(s1,NULL,0);
waitpid(s2,NULL,0);
waitpid(s3,NULL,0);
printf("p1=%f\n",p1);
printf("p2=%f\n",p2);
printf("p3=%f\n",p3);
c=p1+p2+p3;
printf("Summ: %f\n",c);
exit(4);
}
else 
{
atexit(&exit_failure);
}


}
else 
{
atexit(&exit_failure);
}


}
else 
{
atexit(&exit_failure);
}

}
 
K

Kineziz

Может вы имели ввиду 3 потока? Если да, то CreateProcess и KillProcess из Windows.h создают и удаляют поток. Про функции почитать можно в гугле первой ссылкой.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!