![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Hoog Niveau Programmering Post vragen over C, C + +, Java, SQL, en andere programmeertalen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| om de terugkeer code van Forken kind proces (ftp) | KittyJ | Hoog Niveau Programmering | 7 | 08-19-2007 04:44 |
| weergegeven in een kind van een commando te noemen bij de ouders op een | remid1985 | Hoog Niveau Programmering | 7 | 01-19-2007 06:40 PM |
| Hoe vindt u de chid proces-id van gegeven parent process ID | guhas | Programmeren en Shell Scripting | 3 | 10-13-2005 09:13 |
| Uitvoering van 2 buizen tussen een ouder en kind proces | bwgoudey | Hoog Niveau Programmering | 2 | 09-25-2005 12:14 AM |
| ouder en kind proces betrokken? | Tosa | Hoog Niveau Programmering | 0 | 02-16-2005 03:04 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Kan een kind proces terugkeer van een specifieke waarde aan een ouder-proces?
Hallo iedereen!
Ik heb twee C bronbestand: child.c en parent.c. child.c lijkt op dat: Code:
int main()
{
Hoe kom ik bij de ouders op de terugkeer code van kind (hier is 15647) zonder gebruik te maken van interproces communicatie (pijp, het gedeelde geheugen, ...)? Is er een manier om dat te doen zonder IPC? Bedankt! |
|
||||
|
Dank u voor de antwoorden!
Om tijdperk: Misschien was ik niet duidelijk. Veronderstelde ik wil voor de berekening van een product van twee getallen in kind proces. Dus, child.c lijkt op dat: ... sommige # include int main (int argc, char * argv []) ( int a; int b; a \u003d atoi (argv [1]); b \u003d atoi (argv [2]); return a * b;) Onder Windows, als ik deze code in parent.c: int main () ( int resultaat; char * args [4]; // Bereiden argumenten voor kind proces args [0] \u003d "child.exe"; args [1] \u003d argv [1]; args [2] \u003d argv [2]; args [3] \u003d NULL; // Lancering van het kind-proces result \u003d _spawnvp (_P_WAIT, args [0], args); printf ( "Product:% d, resultaat); return 0;) Ik ben in staat om de vangst van de terugkeer product van kind (a * b) als het rendement van _spawnvp () functie in het resultaat variabele. Onder Linux is posix_spawnp () of wacht () slechts EXIT_FAILURE of EXIT_SUCCES. Ik heb niet een manier vinden om de vangst van de ouders het product waarde berekenen van het kind (waarde die wordt teruggegeven in kind). Om ramen_noodle: Ik niet begrijp dat u startChild () functie. Ik weet niet wat er funion. Is een functie of een data-type? Ik vond het geen verwijzing naar funion (). |
|
||||
|
U wel iets meer met WEXITSTATUS (status) nadat u hebt gedaan waitpid (pid, & status, ...) maar dit was nooit bedoeld als een faciliteit voor iets meer dan zeer kleine getallen.
II begrijp de hint ramen_noodle correct, zou u een functie pointer "funion" die u in het kind, en die weer het resultaat in het geheugen plaats verwezen door anarg. Wat probeer je te bereiken, waarom is regelmatig IPC uit de vraag? |
|
||||
|
Bedankt voor het helpen Era.
Al die kan worden teruggekeerd van een kind is het pid zonder ipc. Dat is allemaal mijn voorbeeld doet. Vergeet niet dat bij splitsing de ouders adresruimte wordt gekopieerd naar het kind. Daarna geen opdrachten worden gedeeld. De uitzondering is vfork. Er zijn enkele lelijke hacks die kunnen bereiken wat u nodig hebt met deze. Wilt u misschien overwegen draden plaats. Het klinkt als wat je in gedachten hebben. Traditioneel in een proces (IPC) paradigma: Pijpleidingen zijn eenvoudig en schoon. Al het andere is gaan nemen tijd om te wennen. |
![]() |
| Bladwijzers |
| Labels |
| linux |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|