Accueil > Forum > > > > variable partagé entre processus
variable partagé entre processus
samedi 9 décembre 2006 à 21:04:37 |
variable partagé entre processus

facilus
|
Bonjour, j'ai fais un programme en c sous unix qui consiste a creer 3 fils (avec fork) , j'ai declaré 2 variables globales leur valeurs doivent etre les memes pour tous les processus creer : int index[3] , initialisé a -1; int nb=0; a chaque creation d'un processus fils j'incremente la variable nb é je modifie le tableau index , apres la creation du 3 fils normalement j'aurai : nb=3 et index(1,2,3); le probleme é ke pour le 1er fils le contenu de nb reste 1 é index(1,0,0) , pour le 2eme fils nb=2 et index(1,2,0) pour le 3eme nb=3 et index(1,2,3) . comment faire pour que les 3 fils doivent avoir le meme contenu des variables globals (nb=3 et index(1,2,3) ) ? voici la portion du code : void main () { for(i=1;i<3;i++) { fork(); nb++; index[i-1]=i; } Merci
|
|
samedi 9 décembre 2006 à 21:10:04 |
Re : variable partagé entre processus

facilus
|
je ne peux utiliser ni les semaphores ni la memoire partagé , seulement les pipes et signaux
|
|
samedi 9 décembre 2006 à 22:18:46 |
Re : variable partagé entre processus

Ombitious_Developper
|
Salut:
Ton problème est mal expliqué. Qu'est ce que tu veux précisement et qu'est ce que tu as trouvé comme résultat?
|
|
samedi 9 décembre 2006 à 22:29:59 |
Re : variable partagé entre processus

Ombitious_Developper
|
Salut:
Essaye ceci:
int nb = 0; int index [3] = {-1, -1, -1};
int main () { for(i=0;i<3;i++) { // Création d'un processus fils fork(); nb++; index[i] = i+1; // Fin } return o; }
|
|
samedi 9 décembre 2006 à 22:40:55 |
Re : variable partagé entre processus

facilus
|
le resultat est : lorsque je cree seulement le derniers fils (3eme) , é j'affiche le nb é le tableau pour le 1er et le 2eme fils je trouve ke pour le 1er : il affiche nb = 1, {1,-1,-1} et le 2eme : nb=2 , {1,2,-1}, je ve ke le 1er, 2eme et 3eme fils affiche la meme chose cad :
nb=3 et {1,2,3}cad afficher ce ke le dernier fils a modifier. merci
|
|
samedi 9 décembre 2006 à 22:49:06 |
Re : variable partagé entre processus

Ombitious_Developper
|
Salut:
Si tu veux afficher nb = 3 et index = {1, 2, 3} pour les 3 processus (Bienque je ne comprends pas pourquoi faire ça):
int nb = 0; int index [3];
int main () { for(i=0;i<3;i++) { // Création d'un processus fils memset (index, -1, sizeof (index)); fork(); for (int j=0; j<3; ++j) index [j] = j+1;
nb++; // Fin } return o; }
|
|
samedi 9 décembre 2006 à 22:50:34 |
Re : variable partagé entre processus
|
samedi 9 décembre 2006 à 23:56:09 |
Re : variable partagé entre processus

facilus
|
je fé ca pour : a chaque fois qu'un client se connecte vers le serveur je fé un fork , je sauvegarde l'identifiant du client dan le tableau index (variable global) ensuite lorske le serveur diffuse un message a tt les cliens connécté il teste combiel y'a t'il de clients conécté (la variable globale nb) é parcoure le tableau index pour envoyer a chake client qui existe dan le tableau.
lorsque le 1er client se connecte : nb = 1 ==> faire un fork pour traiter le client seul lorsque le 2eme client se connecte nb = 2;==>faire fork .... lorsque le 3eme client se connecte nb = 3; ==>faire fork .....
lorsque par exemple le 2eme client envoi un message il trouve ke le nb = 2 pas a 3 ??? j'espere ke jé bien expliké ,sinon je detaillerai plus
|
|
mercredi 13 décembre 2006 à 23:08:42 |
Re : variable partagé entre processus

ShareVB
|
salut,
moi je dirais que tu peux faire ça avec uniquement des signaux : -> SIG_USR1 : handler incrémente nb -> SIG_USR2 : handler décrémente nb -> SIG_CHILD (dans le père) : envoit SIG_USR2 à tout le groupe de processus : kill(0,SIG_USR2)
ensuite lorsque le parent se lance, appelles setpgrp() pour créer un groupe de processus lorsque tu fais ton fork, dans le fils ou dans le père mais pas dans les deux, appelles kill(0,SIG_USR1)
ShareVB
|
|
samedi 14 novembre 2009 à 11:49:25 |
Re : variable partagé entre processus

insafunix
|
bonjour,j'essaye de créer un programme C qui crée deux fils l'un affiche les entiers de 1à100 et l'autre de 101 à 200 en utilisant FORK mais je n'arrive pas.
|
|
Cette discussion est classée dans : variable, fils, index, processus, nb
Répondre à ce message
Sujets en rapport avec ce message
Variable global et processus [ par obasileus ]
Salut j'ai un programme comportant 4 processus fils qui lancent chacun 4 threads qui gèrent 2 problemes producteur/consom. Le processus pere à besoin
Thread et variable globale [ par valoue ]
Bonjour,Je developpe une application en C++.La classe que je developpe comporte une méthode "recevoir (char *trame). Dans cette méthode, je fais appel
récuperation de l'etat d'un processus [ par Spy63 ]
J'ai un programme en C systeme que j'ecrit sous vi pour linux dans lequel:-j'ai un pere et deux fils.-Mon but et d'atendre que les fils soit en pause
communication inter processus sous linux [ par boumarsel ]
voila un processus cree un processus fils par fork, le fils execute un traitement (fonction) et retourne une valeur que je veux recuperer par le proce
(C) Comment créer des processus fils? [ par berserker21 ]
Sans utiliser la fonctions fork() vu que je programme sous windows. Le but étant de permettre a plusieurs clients de se connecter à mon apli serveur e
Portée de variable [ par Roro8883 ]
Bonjour, comment peut-on déclarer une variable globale à l'intérieur d'une fonction ???Je m'explique, voici mon code (très simplifié) :void initialisa
Aide Processus fils [ par phoenix_91 ]
Bonjour, J'ai un programme (C++) pere qui créé un processus fils qui lance une application. J'aimerais recuperer l'affichage produit par le processu
wait et exit dans fork [ par mina_mi ]
bonjour j'ai un probleme sur les notions de wait() et exit() dans la création des processus par exemples si j'ai plusieurs processus fils qui ont
Problème avec GetMessage d'un processus parent [ par RV2931 ]
Bonjour, j'ai un problème de communication, mais je suis informaticien, donc tout s'explique :), nan plus sérieusementDans le processus père, j'utilis
Petit Programme [ par jarod05 ]
Bonjour, Je suis à la recherche d'un code qui me permet : de lire sur la ligne de commande en utilisant argc et argv le nbre N de processus à cré
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|