![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Højtstående Programmering Post spørgsmål om C, C + +, Java, SQL, og andre programmerings sprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| få returkode af kløvet barn processen (FTP) | KittyJ | Højtstående Programmering | 7 | 08-19-2007 03:44 AM |
| displayet i et barn proces en kommando kaldes i moderselskabet en | remid1985 | Højtstående Programmering | 7 | 01-19-2007 06:40 PM |
| hvordan man finder den chid processen id fra givne moderselskab proces id | guhas | Shell Programmering og Scripting | 3 | 10-13-2005 08:13 AM |
| Gennemførelsesbeføjelser 2 rør mellem en forælder og barn proces | bwgoudey | Højtstående Programmering | 2 | 09-24-2005 11:14 PM |
| forælder og barn proces spørgsmål? | Tosa | Højtstående Programmering | 0 | 02-16-2005 03:04 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Kan et barn proces returnerer en bestemt værdi til et moderselskab proces?
Hej alle!
Jeg har to C kildefil: child.c og parent.c. child.c ser gerne, at: Code:
int main()
{
Hvordan kan jeg komme i moderselskabet returkode fra barn (her værdi er 15647) uden at bruge InterProcess kommunikation (rør, delt hukommelse, ...)? Er der nogen måde at gøre det uden at IPC? Tak! |
|
||||
|
Tak for svarene!
Til epoke: Måske var jeg ikke klar. Meningen, jeg ønsker at beregne et produkt af to heltal i barn proces. Så child.c ser gerne, at: ... nogle # include int vigtigste (int argc, char * argv []) ( int a; int b; a \u003d atoi (argv [1]); b \u003d atoi (argv [2]); return a * b;) Under Windows, hvis jeg bruger denne kode, i parent.c: int vigtigste () ( int resultat; char * args [4]; // Forberede argumenter for barnet proces args [0] \u003d "child.exe"; args [1] \u003d argv [1]; args [2] \u003d argv [2]; args [3] \u003d NULL; // Lancere barnet proces result \u003d _spawnvp (_P_WAIT, args [0], args); printf ( "Produkt:% d, resultat); tilbagevenden 0;) Jeg er i stand til at fange returnere produktet fra barn (a * b), som vender tilbage fra _spawnvp () funktion i resultat variabel. Under Linux, () eller posix_spawnp vent () returnerer kun EXIT_FAILURE eller EXIT_SUCCES. Jeg kunne ikke finde en måde at fange i den forælder varens værdi beregnes i barnet (værdi, der returneres i barn). Til ramen_noodle: Jeg forstår ikke du startChild () funktion. Jeg ved ikke, hvad der er funion. Er en funktion eller en datatype? Jeg fandt ikke henvisning til funion (). |
|
||||
|
Du får lidt mere med WEXITSTATUS (status), efter du har gjort en waitpid (pid, & status, ...), men det var aldrig ment som en mulighed for noget mere end meget små heltal.
II forstå ramen_noodle's antydning korrekt, vil du have en funktion pointer "funion", som du kører i barnet, og som returnerer dens resultat i hukommelsesplads peget på af anarg. Hvad er du prøver at opnå, hvorfor er regelmæssig IPC ud af det spørgsmål? |
|
||||
|
Tak for den hjælp Era.
Alle, der kan være vendt tilbage fra et barn er det pid uden ipc. Det er alt mit eksempel gør. Husk, at på gaffel forældrene henvende plads er kopieret ind i barnet. Bagefter ingen opgaver er delt. Undtagelsen er vfork. Der er nogle grimme hacks, der kan udrette, hvad du skal bruge dette. Du vil måske overveje tråde i stedet. Det lyder som om, hvad du har i tankerne. Traditionelt i en proces (IPC) paradigme: Rør er enkle og rene. Alt andet vil tage tid at vænne sig til. |
![]() |
| Bogmærker |
| Tags |
| linux |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|