The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Posez vos questions à propos de C, C + +, Java, SQL, et d'autres langages de programmation ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
obtenir le code de retour de l'enfant fourchue processus (ftp) KittyJ High Level Programming 7 08-19-2007 03:44 AM
afficher un enfant dans le traitement d'une commande appelée à la mère un remid1985 High Level Programming 7 01-19-2007 06:40 PM
comment trouver l'id du processus CHID donné id du processus parent guhas De programmation et de script Shell 3 10-13-2005 08:13 AM
2 tubes de mise en oeuvre entre un parent et un enfant processus bwgoudey High Level Programming 2 09-24-2005 11:14 PM
parent et l'enfant processus question? tosa High Level Programming 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 04-07-2008
Ametis1970 Ametis1970 is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 4
Un enfant peut-il un processus de retour de valeur à un processus parent?

Bonjour à tous!

J'ai deux fichiers source C: child.c et parent.c.

child.c ressemble à ceci:
Code:
int main()
{
...
return 15647
}
parent.c appels enfant utilisant fork ()-exec () ou posix_spawn ().
Comment puis-je obtenir le retour des parents dans le code de l'enfant (ici, la valeur est 15647), sans l'aide de la communication interprocessus (pipe, mémoire partagée, ...)?
Yat-il un moyen de le faire sans que l'IPC?

Merci!
  #2 (permalink)  
Old 04-07-2008
ère era is offline Forum Advisor  
Inutile de Herder Cats (en congé sabbatique)
  
 

Join Date: Mar 2008
Location: / il / est / que / bin / sh
Messages: 3652
wait () retourne le code de sortie d'un enfant.

Par définition, il existe deux processus de communiquer ici, même si c'est une forme de classification.
  #3 (permalink)  
Old 04-07-2008
ramen_noodle ramen_noodle is offline Forum Advisor  
Registered User
  
 

Join Date: Dec 2007
Lieu: Virginie, Etats-Unis.
Messages: 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
Registered User
  
 

Join Date: Mar 2008
Messages: 4
Merci pour les réponses!

Pour époque:

Peut-être que je n'ai pas été clair.
Supposed Je veux calculer le produit de deux entiers dans un processus fils.
Ainsi, child.c ressemble à ceci:

... certains # include

int main (int argc, char * argv [])
(
int a;
int b;
a \u003d atoi (argv [1]);
b \u003d atoi (argv [2]);
return a * b;
)

Sous Windows, si je l'utilise ce code, en parent.c:

int main ()
(
int result;
char * args [4];
// Préparer les arguments en faveur d'un processus fils
args [0] \u003d "child.exe";
args [1] \u003d argv [1];
args [2] \u003d argv [2];
args [3] \u003d NULL;
// Lancer le processus fils
result \u003d _spawnvp (_P_WAIT, args [0], args);
printf ( "produit:% d, result);
return 0;
)

Je suis capable de prendre le retour de produits de l'enfant (a * b) que le retour de _spawnvp () la fonction d'un résultat variable.
Sous Linux, posix_spawnp () ou wait () return EXIT_FAILURE ou seulement EXIT_SUCCES. Je n'ai pas trouvé un moyen de capturer dans le parent de calculer la valeur du produit chez l'enfant (la valeur qui est renvoyé de l'enfant).

Pour ramen_noodle:
Je ne comprends pas que vous startChild () function.
Je ne sais pas ce qui est funion. Est une fonction ou un type de données? Je n'ai pas trouvé de référence à funion ().
  #5 (permalink)  
Old 04-07-2008
ère era is offline Forum Advisor  
Inutile de Herder Cats (en congé sabbatique)
  
 

Join Date: Mar 2008
Location: / il / est / que / bin / sh
Messages: 3652
Vous obtenez un peu plus avec WEXITSTATUS (statut) après que vous avez fait un waitpid (pid, & status, ...) mais cela n'a jamais été conçue comme une installation de quelque chose de plus que les très petits entiers.

II ramen_noodle comprendre l'indice correctement, vous devez avoir un pointeur de fonction "funion" qui vous lancez dans l'enfant, et qui retourne son résultat dans l'emplacement mémoire pointé par anarg.

Qu'est-ce que vous essayer d'atteindre, pourquoi est régulièrement IPC hors de question?
  #6 (permalink)  
Old 04-07-2008
ramen_noodle ramen_noodle is offline Forum Advisor  
Registered User
  
 

Join Date: Dec 2007
Lieu: Virginie, Etats-Unis.
Messages: 251
Merci pour les aider Era.
Tout ce qui peut être de retour d'une enfant sans son pid ipc.
C'est tout ce que mon exemple ne. Rappelez-vous que la fourche à l'adresse des parents est copié dans l'espace de l'enfant. Ensuite, les affectations ne sont partagés.
L'exception est vfork. Il ya quelques hacks laid que peut accomplir ce que vous avez besoin d'utiliser ce. Vous songez à mai au lieu de fils. Il semble que ce que vous avez à l'esprit.

Traditionnellement, dans un processus (IPC) de paradigme: Tubes sont simples et propres.
Tout le monde va prendre du temps pour s'habituer à.
Closed Thread

Bookmarks

Tags
linux

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 03:55 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0