The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > Hoog Niveau Programmering
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-07-2008
Ametis1970 Ametis1970 is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posten: 4
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()
{
...
return 15647
}
parent.c oproepen kind met behulp van fork ()-exec () of posix_spawn ().
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!
  #2 (permalink)  
Old 04-07-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
wachten () geeft de uitgang code van een kind.

Per definitie zijn er twee processen communiceren hier, dus ook dit is een vorm van IPC.
  #3 (permalink)  
Old 04-07-2008
ramen_noodle ramen_noodle is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: december 2007
Locatie: Virginia, USA.
Posts: 251
Code:
pid_t startChild(void (*funion)(void *arg), void *anarg) {
pid_t chld;
                       if ( (chld = fork()) == 0) {
                           funion(anarg);
                       }
                       return chld;
}
  #4 (permalink)  
Old 04-07-2008
Ametis1970 Ametis1970 is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2008
Posten: 4
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 ().
  #5 (permalink)  
Old 04-07-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
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?
  #6 (permalink)  
Old 04-07-2008
ramen_noodle ramen_noodle is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: december 2007
Locatie: Virginia, USA.
Posts: 251
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.
Closed Thread

Bladwijzers

Labels
linux

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 12:54 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0