A voir également:
- [script sh] boucle for
- Script vidéo youtube - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Idm for mac - Télécharger - Téléchargement & Transfert
4 réponses
J'ai oublié, le message d'erreur est :
/home/pomme/bin/runprgmdloop1020_20_1300.sh: line 3: 24765 Erreur de segmentation ./out input.txt $N
/home/pomme/bin/runprgmdloop1020_20_1300.sh: line 3: 24765 Erreur de segmentation ./out input.txt $N
Radek
Messages postés
22
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
7 septembre 2006
6
23 août 2006 à 13:34
23 août 2006 à 13:34
Tu es certain que ton make c'est déroulé correctement ?
Ben oui... il marche très bien si je fais ma boucle pour N allant de 900 jusqu'à 1000. Pourquoi ne marcherait-il pas pour 1020 jusqu'à 1300 ?
Comment puis-je savoir si mon make s'est correctement effectué ?
Pour le cas ou, voici mon Makefile
Comment puis-je savoir si mon make s'est correctement effectué ?
Pour le cas ou, voici mon Makefile
# compilateur utilise CC=gcc #CPP pour le C++ et CC pour le C CFLAGS=-Wall -W -O2 LDFLAGS=-Wall -O2 -lm -static #LDFLAGS=-O3 -axW -ipo -mp1 -lm -static # on inclut tous les headers INCLUDE_DIR1=../include/includeCVode INCLUDE_DIR2=../include/myinclude # EXEC contient le nom des executables a generer. EXEC=out # Fichiers sources SRC= $(wildcard ../source/sourceCVode/*.c) $(wildcard ../source/mysource/*.c) main.c # Fichiers objets le .c est remplace par un .o OBJ=$(SRC:.c=.o) # Regles de compilation: all: $(EXEC) $(EXEC): $(OBJ) @$(CC) -o $@ $^ $(LDFLAGS) # Creation des .o a partir des .c qui se verront appeles par defaut. %.o: %.c @$(CC) -o $@ -c $< -I$(INCLUDE_DIR1) -I$(INCLUDE_DIR2) $(CFLAGS) clean: @rm -rfv $(EXEC) $(OBJ) *~
Radek
Messages postés
22
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
7 septembre 2006
6
23 août 2006 à 14:03
23 août 2006 à 14:03
Je pense que ca plante lors de l'execution de la ligne :
Ton script ni ton makefile ne sont en cause à priori. Je pencherais plutot pour ton executable généré par la commande make.
En fait je pense que le nombre que tu transmet à ton executable est trop gros. Regarde dans les sources de ton programme !
time -p ./out input.txt $N
Ton script ni ton makefile ne sont en cause à priori. Je pencherais plutot pour ton executable généré par la commande make.
En fait je pense que le nombre que tu transmet à ton executable est trop gros. Regarde dans les sources de ton programme !
Radek
Messages postés
22
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
7 septembre 2006
6
23 août 2006 à 14:54
23 août 2006 à 14:54
Je fais N+3 fopen()
Tu peux être plus précis ?
pom
>
Radek
Messages postés
22
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
7 septembre 2006
23 août 2006 à 15:20
23 août 2006 à 15:20
Salut, j'ai N domaines et je résoud une équation sur chaque domaine. Je stocke la solution dans un fichier texte. J'ai donc N fichiers de sorties (donc j'ai fait N fopen()). Mais je fais aussi trois autres fopen() où je stocke d'autre choses. Donc je fait N+3 fopen au total. Alors si N est petit ça va, mais si N est grand... mon prgm plante ! Y a-t-il une solution pour éviter ce plantage (en évitant de tout stocker dans un énorme fichier) ?
Merci en tout cas de ta patience.
Merci en tout cas de ta patience.
Radek
Messages postés
22
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
7 septembre 2006
6
>
pom
23 août 2006 à 16:12
23 août 2006 à 16:12
Il n'est pas raisonnable d'ouvrir autant de fichiers en même temps.
En générale dans la programmation on essaie de ne pas ouvrir trop de fichiers en même temps.
Donc je conseillerais de revoir la structure de ton programme pour ouvrir tes fichiers l'un après l'autre. Personnellement, j'évite d'ouvrir en même temps plus de 4-5 fichiers simultanément.
Dans ton cas je ne pense pas que tu fasses tes N traitements sur tes domaines en même temps. Donc ouvre tes fichiers un par un (sans oublier des les fermer !). Ton programme n'en sera que plus clair et plus performant.
De plus les OS limites en général le nombre de fichiers pouvants être ouverts simultanément.
Voila.
En générale dans la programmation on essaie de ne pas ouvrir trop de fichiers en même temps.
Donc je conseillerais de revoir la structure de ton programme pour ouvrir tes fichiers l'un après l'autre. Personnellement, j'évite d'ouvrir en même temps plus de 4-5 fichiers simultanément.
Dans ton cas je ne pense pas que tu fasses tes N traitements sur tes domaines en même temps. Donc ouvre tes fichiers un par un (sans oublier des les fermer !). Ton programme n'en sera que plus clair et plus performant.
De plus les OS limites en général le nombre de fichiers pouvants être ouverts simultanément.
Voila.
pom
>
Radek
Messages postés
22
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
7 septembre 2006
23 août 2006 à 16:44
23 août 2006 à 16:44
Oui, tu as sûrement raison. Je vais changer mes qq lignes de codes alors.
Merci de ta patience
Merci de ta patience