Rechercher : dans
Par :

Problème C

Dernière réponse le 27 oct 2009 à 03:13:19 haduss, le 27 oct 2009 à 02:14:05 
 Signaler ce message aux modérateurs

Bonsoir,
j'ai un petit programme qui crée un processus pèere et un processus fils mais il contien des instructions dont je n'ai pas bien saisi leur role dans le programme :/ (je precise je ne suis pas super bon programmation et le language C est assez nouveau pour moi)
bon les instruction sont en gras il y a la boucle while et getchar.merci de m'aider

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main () {
int i=0,x=10;
int pid=fork();
if (pid<0)
{
printf("Erreur\n");
}
else {
if (pid==0) {
x=20;
printf ("je suis le processus fils,mon PID est %d,x=%d\n",getpid(),x);
while (1) {
i++;}

}
else {
printf ("je suis le processus père, mon PID est %d,x=%d\n",getpid(),x);
getchar();
exit(0);
}
}
return 0;
}

Meilleures réponses pour « problème C » dans :
Langage C++ - Les types de données Voir Les types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Les structures en langage C Voir Différence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

loupius, le 27 oct 2009 à 03:04:54
  • +1

while (1) { i++; }
Alors là on est peinard, on peut aller prendre un café, deux cafés, trois cafés, ... et quand y'en aura plus on aura même le temps d'aller acheter un autre paquet, de le moudre, de refaire chauffer l'eau et de boire un café, deux cafés, ... ;-) Enfin, tu as compris c'est une boucle infinie; en effet, une fois entré dans la boucle, le test '(1)' est toujours vrai et on refait un tour.
getchar();
Là le programme attend que l'utilisateur tape n'importe quelle touche sur son clavier.

Un détail sur le programme:
- Le programme 'père', avant de se terminer, doit attendre que le processus 'fils' se termine et doit lire le code de retour de celui-ci.
Dans le cas présent, le 'fils' va se poursuivre mais n'aura plus de 'père', ce qui est contraire au principe que tout processus doit avoir un 'père' (sauf évidemment le premier processus), et en conséquence ce 'fils' devient ce que l'on appelle un 'zombie'.

Bonne continuation.

Répondre à loupius

2

 haduss, le 27 oct 2009 à 03:13:19

Mmmh d'accord :D, merci de ta reponse là j'y vois mieux :).bon debut de journée ;)

Répondre à haduss