Forum » Programiranje » c++ fork()
c++ fork()
luli ::
Imam sledečo nalogo :
Proces OČE naj kreira tri sinove, in sicer SIN1, SIN2 in SIN3. SIN1 naj nato kreira enega sina, in sicer VNUK1, SIN2 naj kreira dva svoja sina, in sicer VNUK2 ter VNUK3, SIN3 pa naj kreira kar tri sinove, in sicer VNUK4, VNUK5 in VNUK6. Z ustreznim postavljanjem izpisov (printf) pokažite pravilnost svoje rešitve.
Prosil bi vas za pomoč ali pa vsaj napotitev na kako internet stran, kjer je source od "podobne" naloge. To se pravi različne naloge za različne sinove.
Hvala v naprej.
Proces OČE naj kreira tri sinove, in sicer SIN1, SIN2 in SIN3. SIN1 naj nato kreira enega sina, in sicer VNUK1, SIN2 naj kreira dva svoja sina, in sicer VNUK2 ter VNUK3, SIN3 pa naj kreira kar tri sinove, in sicer VNUK4, VNUK5 in VNUK6. Z ustreznim postavljanjem izpisov (printf) pokažite pravilnost svoje rešitve.
Prosil bi vas za pomoč ali pa vsaj napotitev na kako internet stran, kjer je source od "podobne" naloge. To se pravi različne naloge za različne sinove.
Hvala v naprej.
bozjak ::
hmm, naredi si dinamični seznam in iz njega naredi drevo. Sigurno se na googlu kej tazga najde, če se ti res ne da pisat, sam škodl ti nebi nč...
Lp
Lp
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
luli ::
Dinamično drevo ne pomaga, saj si procesi lahko izmenjujejo podatke samo preko t.i. skupnega pomnilnika, tega pa še do te vaje nismo obravnavali.
Vseeno hvala za nasvet in čakam nove!
Vseeno hvala za nasvet in čakam nove!
BigWhale ::
int main()
int sin_1=1;
fork()
int sin_2=1;
fork();
...
se nekaj ifov okrog vsega pa smo tam! ;)
int sin_1=1;
fork()
int sin_2=1;
fork();
...
se nekaj ifov okrog vsega pa smo tam! ;)
Quikee ::
int pid; pid = fork(); if (pid > 0) { //do_child_1 pin = fork(); if (pid > 0) { //do_grand_child_1 return 0; } return 0; } pid = fork(); if (pid > 0) { //do_child_2 pin = fork(); if (pid > 0) { //do_grand_child_2 return 0; } return 0; }
nekaj v tem smislu...
edit: fork() vedno vrača PID > 0 za novi child process in 0 za parent process
Zgodovina sprememb…
- spremenil: Quikee ()
Gregor5816 ::
Imam eno vprašanje glede procesov in forkanja.
Koda je iz C. Če zgoraj v otroku pustimo "return 0;" zakomentirano, ali se koda po forku izvede samo enkrat (jo izvede starš) ali dvakrat (izvedeta jo starš in otrok)?
//koda pred forkom int pid; pid = fork (); if (pid == 0) { //child //return 0; } else { //parent } //koda po forku return 0;
Koda je iz C. Če zgoraj v otroku pustimo "return 0;" zakomentirano, ali se koda po forku izvede samo enkrat (jo izvede starš) ali dvakrat (izvedeta jo starš in otrok)?
Randomness ::
Vse se izvede dvakrat. Sicer pa zakaj tega ne poskusiš sam?
if (fork()) { printf("parent\n"); } else { printf("child\n"); } printf("child and parent\n");
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C in računanje kotovOddelek: Programiranje | 6556 (5609) | RatedR |
» | Naloga iz Putka - UPMOddelek: Programiranje | 2205 (1541) | NejcSSD |
» | [C] ProcesiOddelek: Programiranje | 967 (876) | Cvenemir |
» | [C] in delo s procesi v LinuxuOddelek: Programiranje | 2271 (1757) | OmegaM |
» | Pomoč z C++ nalogoOddelek: Programiranje | 1417 (1224) | denis123 |