Programmatuon C sous Linux - C - Programmation
Marsh Posté le 04-04-2004 à 00:09:21
_Faust_ a écrit : Bonjour,
|
1) pour les boucles, tu peux faire for (i=0; i <= 100; i+=2) par exemple. c'est un détail.
2) oui, la synchronization est nécessaire : il faut bien comprendre que les deux processus créés sont indépendants après le fork(). Tu n'as aucune garantie que l'affichage se fera dans l'ordre là. remplace sleep(1) par sleep(100) dans un des deux cas et tu vas comprendre.. Donc il faut que chaque processus, après un tour de boucle, signale à l'autre qu'il peut faire son tour suivant et ainsi de suite...
Marsh Posté le 04-04-2004 à 00:17:32
Ah, d'accord je vois...
C'est bien compliqué mettre des signaux? Je regarde dans mes notes et les exemples et je saisi pas bien son fonctionnement et son application...
Je peux rester avec le même programme ou a cause des signaux faut que je m'y prenne d'une autre façon?
Marsh Posté le 04-04-2004 à 00:21:51
_Faust_ a écrit : Ah, d'accord je vois... |
les signaux de souvenir c'est pas bien compliqué mais je suis pas expert. La base de ton programme est bonne, il faut juste que tu ajoutes un système pour n'incrémenter i que quand l'autre process a envoyé un signal comme quoi tu peux y aller.
Marsh Posté le 04-04-2004 à 02:04:41
Moi j'aurais fait ça avec des sémaphores plutôt que des signaux (oui je sais, ça ne t'aide pas beaucoup).
Marsh Posté le 04-04-2004 à 02:09:53
Je crois que j'ai trouvé comment faire...je vais poster mon résultat une fois terminé...
Marsh Posté le 03-04-2004 à 23:48:37
Bonjour,
On me demande d'écrire un petit programme comme suit:
Écrire un programme C qui crée deux processus à l'aide de l'appel système fork(). Le père affichera les entiers pairs compris entre 1 et 100, le fils affichera les entiers impairs compris dans le même intervalle. Synchroniser les processus à l'aide des signaux pour que l'affichage soit 1 2 3 ... 100.
Bon,ce que j'ai écrit fait exactement ce qui est demandé, sauf au niveaux des signaux. Il y a une raison particulière pour synchroniser avec des signaux? Comme je suis pas très bon en C, peut-être que mon programme n'est pas optimal...