Prog en c sous linux
Fermé
rafi oua
Messages postés
30
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
8 février 2013
-
14 nov. 2011 à 19:45
mamiemando Messages postés 33622 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 7 avril 2025 - 15 nov. 2011 à 20:03
mamiemando Messages postés 33622 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 7 avril 2025 - 15 nov. 2011 à 20:03
A voir également:
- Prog en c sous linux
- Diskinternals linux reader - Télécharger - Stockage
- Linux mint 32 bits - Télécharger - Systèmes d'exploitation
- Linux live usb creator - Télécharger - Outils Internet
- Backtrack linux - Télécharger - Sécurité
- R-linux - Télécharger - Sauvegarde
1 réponse
mamiemando
Messages postés
33622
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
7 avril 2025
7 839
Modifié par mamiemando le 15/11/2011 à 10:24
Modifié par mamiemando le 15/11/2011 à 10:24
Et quelle est la question ?
Quelques conseils préliminaires :
- corrige les warning : notamment main est sensée retourner un entier (0 si tout va bien)
- attention à la manière dont tu gères les fichiers et à contrôler que ce que tu crées/ouvres est fait avec succès. Par exemple l'ouverture d'un fichier se gère par exemple comme suit :
- "position = position +2;" s'écrit plus simplement "position += 2;"
- Évite les exit violent, car tu ne garantis pas que ce que tu as ouvert à été fermé. Tu peux par exemple repasser par une fonction du genre :
- Évite les variables globales, ce n'est pas une bonne habitude de programmation. Ce qui signifie que tu dois passer en paramètre fichier, fichier1, fichier2 en paramètre des fonctions qui en ont besoin. Typiquement :
- Sauf erreur de ma part, je ne crois pas que tu aies besoin d'inclure <math.h> (et de lier ton programme à la librairie mathématique)
Bonne chance
Quelques conseils préliminaires :
- corrige les warning : notamment main est sensée retourner un entier (0 si tout va bien)
- attention à la manière dont tu gères les fichiers et à contrôler que ce que tu crées/ouvres est fait avec succès. Par exemple l'ouverture d'un fichier se gère par exemple comme suit :
FILE *fp; const char *filename = "toto.txt"; fp = fopen(filename, "r"); if (fp) { // traiter le fichier ... fclose(fp); } else { fprintf(stderr, "%s: can' read %s\n", argv[0], filename); // Pas de fclose, car le fichier n'a pas été ouvert return 1; }
- "position = position +2;" s'écrit plus simplement "position += 2;"
- Évite les exit violent, car tu ne garantis pas que ce que tu as ouvert à été fermé. Tu peux par exemple repasser par une fonction du genre :
void quitter_proprement(){ if(fichier) fclose(fichier); if(fichier1) fclose(fichier1); if(fichier2) fclose(fichier2); }
- Évite les variables globales, ce n'est pas une bonne habitude de programmation. Ce qui signifie que tu dois passer en paramètre fichier, fichier1, fichier2 en paramètre des fonctions qui en ont besoin. Typiquement :
void quitter_proprement(FILE *fichier, FILE *fichier1, FILE *fichier2){ if(fichier) fclose(fichier); if(fichier1) fclose(fichier1); if(fichier2) fclose(fichier2); }
- Sauf erreur de ma part, je ne crois pas que tu aies besoin d'inclure <math.h> (et de lier ton programme à la librairie mathématique)
Bonne chance
15 nov. 2011 à 18:27
Je vous remercier pour votre conseils et votre aide, mais mon problème c que dans l'exécution de mon programme les processus ne sont pas en parallèle et mon but c le parallélisme et comment je peut communique processus 1 avec processus 2 sans utilisation des signaux (3 est le premier nombre premier déduit par p1, il est communique a p2 avant de réalise le reste de son travail)..
merci
15 nov. 2011 à 20:03