[C] Mon Programme Sous linux Ne marche pas
Résolu
hamidoo07
Messages postés
111
Date d'inscription
Statut
Membre
Dernière intervention
-
hamidoo07 Messages postés 111 Date d'inscription Statut Membre Dernière intervention -
hamidoo07 Messages postés 111 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
salut je j'ai créer un programme avec 1 processus père qui crée 2 fils et 2 pipes
fils 1 dois lire du clavier et écrire ce qu'il a lu dans le pipe 1
le père doit lire a partir de pipe 1 , convertir en majuscule et l'écrire sur pipe 2
fils 2 doit lire a partir du pipe 2 et l'afficher a l'écran
mon programme ne marche pas puisque après la saisie de ma chaine , rien n'est affiché et parfois le prompt n'est pas affiché et le shell attend encore la saisie d'autre chose
voila un lien pour vois le code source du programme
http://img689.imageshack.us/img689/8517/ssskr.jpg
salut je j'ai créer un programme avec 1 processus père qui crée 2 fils et 2 pipes
fils 1 dois lire du clavier et écrire ce qu'il a lu dans le pipe 1
le père doit lire a partir de pipe 1 , convertir en majuscule et l'écrire sur pipe 2
fils 2 doit lire a partir du pipe 2 et l'afficher a l'écran
mon programme ne marche pas puisque après la saisie de ma chaine , rien n'est affiché et parfois le prompt n'est pas affiché et le shell attend encore la saisie d'autre chose
voila un lien pour vois le code source du programme
http://img689.imageshack.us/img689/8517/ssskr.jpg
A voir également:
- [C] Mon Programme Sous linux Ne marche pas
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Linux reader - Télécharger - Stockage
- Comment mettre en veille un programme sous windows 10 - Guide
- Comment fermer un programme qui ne répond pas - Guide
3 réponses
J'ai changé les pointeurs sur char par des tableaux de 100 caractere et scanf par gets et ca a marché
merci pour vous
merci pour vous
Salut,
Juste pour t'expliquer pourquoi ton programme ne marchait pas.
Tu utilisais des pointeurs, mais tu n'as pas réalisée l'allocation avec malloc et cie. Donc, il y avait débordement de tampon lorsque tu utilises scanf. Ainsi tu vas récrire le long de la pile. Soit t'écrases une information importante et t'auras un segfault, soit tu auras des résultats étranges. Dans tous les cas, il s'agit d'une erreur à corriger.
Pour corriger, il suffit soit d'allouer correctement, soit d'utiliser un tableau comme tu l'as fait.
Cdlt,
Juste pour t'expliquer pourquoi ton programme ne marchait pas.
Tu utilisais des pointeurs, mais tu n'as pas réalisée l'allocation avec malloc et cie. Donc, il y avait débordement de tampon lorsque tu utilises scanf. Ainsi tu vas récrire le long de la pile. Soit t'écrases une information importante et t'auras un segfault, soit tu auras des résultats étranges. Dans tous les cas, il s'agit d'une erreur à corriger.
Pour corriger, il suffit soit d'allouer correctement, soit d'utiliser un tableau comme tu l'as fait.
Cdlt,