Je vais essayer de trouver l'erreur avant de lire vos réponses et/ou
conseils que j'accueillerais avec plaisir. Sur les résultats de
google, stack smashing detected semble être une erreur dure à trouver.
Pour le code ci-dessous, c'est un exercice que j'ai écris une dizaine,
vingtaine de fois voire +. Mais ça fait déjà quelques semaines et je
ne sais plus où sont les fichiers...En plus, il y a de nombreuses
façons différentes d'écrire, lire un fichier en tant que débutant avec
des fonctions simples...
Le code où se trouve l'erreur :
void ReadDelCopyFile(FILE *FP_SOURCE, FILE *FP_DESTI)
{
int i ;
int FNum[CRECMAX] ;
char FTxt1[CTXTMAXL] ;
char FTxt2[CTXTMAXL] ;
while(!feof(FP_SOURCE))
{
if (fscanf(FP_SOURCE, "%d%s%s", &FNum[i], FTxt1, FTxt2) == 3)
if (FNum[i] > 5)
{
fprintf(FP_DESTI, "%dn%sn%sn", FNum[i], FTxt1, FTxt2) ;
i++ ;
}
}
}
Je vais essayer de trouver l'erreur avant de lire vos réponses et/ou
conseils que j'accueillerais avec plaisir. Sur les résultats de
google, stack smashing detected semble être une erreur dure à trouver.
Pour le code ci-dessous, c'est un exercice que j'ai écris une dizaine,
vingtaine de fois voire +. Mais ça fait déjà quelques semaines et je
ne sais plus où sont les fichiers...En plus, il y a de nombreuses
façons différentes d'écrire, lire un fichier en tant que débutant avec
des fonctions simples...
Le code où se trouve l'erreur :
void ReadDelCopyFile(FILE *FP_SOURCE, FILE *FP_DESTI)
{
int i ;
int FNum[CRECMAX] ;
char FTxt1[CTXTMAXL] ;
char FTxt2[CTXTMAXL] ;
while(!feof(FP_SOURCE))
{
if (fscanf(FP_SOURCE, "%d%s%s", &FNum[i], FTxt1, FTxt2) == 3)
if (FNum[i] > 5)
{
fprintf(FP_DESTI, "%dn%sn%sn", FNum[i], FTxt1, FTxt2) ;
i++ ;
}
}
}
Je vais essayer de trouver l'erreur avant de lire vos réponses et/ou
conseils que j'accueillerais avec plaisir. Sur les résultats de
google, stack smashing detected semble être une erreur dure à trouver.
Pour le code ci-dessous, c'est un exercice que j'ai écris une dizaine,
vingtaine de fois voire +. Mais ça fait déjà quelques semaines et je
ne sais plus où sont les fichiers...En plus, il y a de nombreuses
façons différentes d'écrire, lire un fichier en tant que débutant avec
des fonctions simples...
Le code où se trouve l'erreur :
void ReadDelCopyFile(FILE *FP_SOURCE, FILE *FP_DESTI)
{
int i ;
int FNum[CRECMAX] ;
char FTxt1[CTXTMAXL] ;
char FTxt2[CTXTMAXL] ;
while(!feof(FP_SOURCE))
{
if (fscanf(FP_SOURCE, "%d%s%s", &FNum[i], FTxt1, FTxt2) == 3)
if (FNum[i] > 5)
{
fprintf(FP_DESTI, "%dn%sn%sn", FNum[i], FTxt1, FTxt2) ;
i++ ;
}
}
}
void ReadDelCopyFile(FILE *FP_SOURCE, FILE *FP_DESTI)
{
int i ;
int FNum[CRECMAX] ;
char FTxt1[CTXTMAXL] ;
char FTxt2[CTXTMAXL] ;
while(!feof(FP_SOURCE))
{
if (fscanf(FP_SOURCE, "%d%s%s", &FNum[i], FTxt1, FTxt2) == 3)
void ReadDelCopyFile(FILE *FP_SOURCE, FILE *FP_DESTI)
{
int i ;
int FNum[CRECMAX] ;
char FTxt1[CTXTMAXL] ;
char FTxt2[CTXTMAXL] ;
while(!feof(FP_SOURCE))
{
if (fscanf(FP_SOURCE, "%d%s%s", &FNum[i], FTxt1, FTxt2) == 3)
void ReadDelCopyFile(FILE *FP_SOURCE, FILE *FP_DESTI)
{
int i ;
int FNum[CRECMAX] ;
char FTxt1[CTXTMAXL] ;
char FTxt2[CTXTMAXL] ;
while(!feof(FP_SOURCE))
{
if (fscanf(FP_SOURCE, "%d%s%s", &FNum[i], FTxt1, FTxt2) == 3)
Que faire devant ce mur d'inertie ...
Que faire devant ce mur d'inertie ...
Que faire devant ce mur d'inertie ...
Voilà pour le backtrace :
:/media/XP/code_c$ gcc exdiv3w.c -o -g exdiv3w
exdiv3w: In function `ReadDelCopyFile':
(.text+0x20d): multiple definition of `ReadDelCopyFile'
/tmp/ccohYJhE.o:exdiv3w.c:(.text+0x159): first defined here
exdiv3w: In function `_start':
quelques minutes après le copié-collé :
je viens de trouver l'erreur de stack smashing detected, c'est dans la
fonction ReadDelCopyFile, je n'affecte pas i = 0 avant while...donc i
peut contenir une valeur aléatoire qui peut se trouver dans le
stack???
questions (pas de réponse dans google):
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"?
Je me demande aussi si stack smashing... ne
vient pas d'apparaître avec une mise à jour de gcc dans ubuntu car
depuis 1an, je rencontre ce message pour la première fois...On peut
retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit? Avec 2-4 heures
par semaine au détriment de faire des exercices en C, est-ce que je
peux apprendre les bases de l'assembleur et est-ce que ça sera utile?
:/media/XP/code_c$ gcc exdiv3w.c -o -g exdiv3w
Voilà pour le backtrace :
bpascal123@zebra:/media/XP/code_c$ gcc exdiv3w.c -o -g exdiv3w
exdiv3w: In function `ReadDelCopyFile':
(.text+0x20d): multiple definition of `ReadDelCopyFile'
/tmp/ccohYJhE.o:exdiv3w.c:(.text+0x159): first defined here
exdiv3w: In function `_start':
quelques minutes après le copié-collé :
je viens de trouver l'erreur de stack smashing detected, c'est dans la
fonction ReadDelCopyFile, je n'affecte pas i = 0 avant while...donc i
peut contenir une valeur aléatoire qui peut se trouver dans le
stack???
questions (pas de réponse dans google):
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"?
Je me demande aussi si stack smashing... ne
vient pas d'apparaître avec une mise à jour de gcc dans ubuntu car
depuis 1an, je rencontre ce message pour la première fois...On peut
retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit? Avec 2-4 heures
par semaine au détriment de faire des exercices en C, est-ce que je
peux apprendre les bases de l'assembleur et est-ce que ça sera utile?
bpascal123@zebra:/media/XP/code_c$ gcc exdiv3w.c -o -g exdiv3w
Voilà pour le backtrace :
:/media/XP/code_c$ gcc exdiv3w.c -o -g exdiv3w
exdiv3w: In function `ReadDelCopyFile':
(.text+0x20d): multiple definition of `ReadDelCopyFile'
/tmp/ccohYJhE.o:exdiv3w.c:(.text+0x159): first defined here
exdiv3w: In function `_start':
quelques minutes après le copié-collé :
je viens de trouver l'erreur de stack smashing detected, c'est dans la
fonction ReadDelCopyFile, je n'affecte pas i = 0 avant while...donc i
peut contenir une valeur aléatoire qui peut se trouver dans le
stack???
questions (pas de réponse dans google):
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"?
Je me demande aussi si stack smashing... ne
vient pas d'apparaître avec une mise à jour de gcc dans ubuntu car
depuis 1an, je rencontre ce message pour la première fois...On peut
retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit? Avec 2-4 heures
par semaine au détriment de faire des exercices en C, est-ce que je
peux apprendre les bases de l'assembleur et est-ce que ça sera utile?
:/media/XP/code_c$ gcc exdiv3w.c -o -g exdiv3w
questions (pas de réponse dans google):
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"? Je me demande aussi si stack smashing... ne
vient pas d'apparaître avec une mise à jour de gcc dans ubuntu car
depuis 1an, je rencontre ce message pour la première fois...On peut
retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit? Avec 2-4 heures
questions (pas de réponse dans google):
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"? Je me demande aussi si stack smashing... ne
vient pas d'apparaître avec une mise à jour de gcc dans ubuntu car
depuis 1an, je rencontre ce message pour la première fois...On peut
retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit? Avec 2-4 heures
questions (pas de réponse dans google):
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"? Je me demande aussi si stack smashing... ne
vient pas d'apparaître avec une mise à jour de gcc dans ubuntu car
depuis 1an, je rencontre ce message pour la première fois...On peut
retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit? Avec 2-4 heures
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"?
Je me demande aussi si stack smashing... ne vient pas d'apparaître
je rencontre ce message pour la première fois...
On peut retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit?
Avec 2-4 heures
par semaine au détriment de faire des exercices en C, est-ce que je
peux apprendre les bases de l'assembleur et est-ce que ça sera utile?
Denière chose ; rien ne se produit avec :
void ReadFile(FILE *FP_FILE)
{
int c ;
while ((c = getc(FP_FILE) != EOF))
fputc(c, stdout) ;
}
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"?
Je me demande aussi si stack smashing... ne vient pas d'apparaître
je rencontre ce message pour la première fois...
On peut retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit?
Avec 2-4 heures
par semaine au détriment de faire des exercices en C, est-ce que je
peux apprendre les bases de l'assembleur et est-ce que ça sera utile?
Denière chose ; rien ne se produit avec :
void ReadFile(FILE *FP_FILE)
{
int c ;
while ((c = getc(FP_FILE) != EOF))
fputc(c, stdout) ;
}
-Quelle est la différence entre "stack smashing deteced" et
"segmentation fault"?
Je me demande aussi si stack smashing... ne vient pas d'apparaître
je rencontre ce message pour la première fois...
On peut retrouver cette erreur dans la norme?
-est-ce qu'il faut comprendre l'assembleur pour lire les messages
d'erreurs ci-dessus et comprendre de quoi il s'agit?
Avec 2-4 heures
par semaine au détriment de faire des exercices en C, est-ce que je
peux apprendre les bases de l'assembleur et est-ce que ça sera utile?
Denière chose ; rien ne se produit avec :
void ReadFile(FILE *FP_FILE)
{
int c ;
while ((c = getc(FP_FILE) != EOF))
fputc(c, stdout) ;
}
Non et sûrement pas : le langage d'assemblage est un dinosaure qui n'a
plus vraiment de nécessité pour 99 % des programmeurs... depuis Unix V7
en 1978.
Non et sûrement pas : le langage d'assemblage est un dinosaure qui n'a
plus vraiment de nécessité pour 99 % des programmeurs... depuis Unix V7
en 1978.
Non et sûrement pas : le langage d'assemblage est un dinosaure qui n'a
plus vraiment de nécessité pour 99 % des programmeurs... depuis Unix V7
en 1978.
FP_FILE est-il ouvert en lecture, et contient-il des caractères à lir e?
Comme je ne vois pas de fopen, ici il manque quelque chose au programme
minimum permettant de pouvoir d'aider efficacement.
Antoine
FP_FILE est-il ouvert en lecture, et contient-il des caractères à lir e?
Comme je ne vois pas de fopen, ici il manque quelque chose au programme
minimum permettant de pouvoir d'aider efficacement.
Antoine
FP_FILE est-il ouvert en lecture, et contient-il des caractères à lir e?
Comme je ne vois pas de fopen, ici il manque quelque chose au programme
minimum permettant de pouvoir d'aider efficacement.
Antoine
En effet, il manque fclose et fopen en mode lecture et accessoirement
fclose.
Mais même avec, la fonction de lecture plante ou alors il y a
un ÿ à la fin lors de la lecture sur l'écran...
Je vais revoir dans
les posts précédents s'il y n'y a pas eu un conseil que j'ai passé
sans donner d'importance parce que je n'avais pas donné la priorité à
la lecture écran. C'était plutôt au niveau de fscanf et des
enregistrements... Il y avait une réponse de Ed avec des directives
préprocesseur :
#if 0
/* cette fonction affiche le tout : alors le fichier est lisible */
void DisplayRec (FILE * FP_DESTI)
{
int c;
printf ("nnAFFICHAGE : n");
while ((c = getc (FP_DESTI)) != EOF)
putchar (c);
}
#endif
Mais je n'ai pas encore abordé les directives du préprocesseur (si
c'est bien de ça qu'il s'agit) et puis je ne trouve pas leur emploi
très simple...
Mais si je dois me mettre à l'assembleur, je devrais
apprendre à jongler. Si j'apprends l'assembleur par simple curiosité,
je sais que je m'engage pour plusieurs années sans trop savoir où je
vais.
Je sais que même avec beaucoup d'effort, je ne pourrais pas
arriver à la cheville d'une personne formée avec de l'expérience da ns
ce domaine. Je dois d'abord finir d'apprendre les bases du langage c
et il me semble qu'il reste encore du chemin et le plus dur est
d'ailleurs de combler les lacunes plutôt que d'avancer chapitre après
chapitre.
Pour en revenir à fopen, je trouve d'ailleurs assez dangereux la
fonction fopen en mode écriture.
Pour un fichier quelconque, fopen en mode écriture ouvre le fichier,
efface ce qu'il y a dedans tout en laissant le fichier intact du point
de vue de sa forme (l'icone existe toujours).
En effet, il manque fclose et fopen en mode lecture et accessoirement
fclose.
Mais même avec, la fonction de lecture plante ou alors il y a
un ÿ à la fin lors de la lecture sur l'écran...
Je vais revoir dans
les posts précédents s'il y n'y a pas eu un conseil que j'ai passé
sans donner d'importance parce que je n'avais pas donné la priorité à
la lecture écran. C'était plutôt au niveau de fscanf et des
enregistrements... Il y avait une réponse de Ed avec des directives
préprocesseur :
#if 0
/* cette fonction affiche le tout : alors le fichier est lisible */
void DisplayRec (FILE * FP_DESTI)
{
int c;
printf ("nnAFFICHAGE : n");
while ((c = getc (FP_DESTI)) != EOF)
putchar (c);
}
#endif
Mais je n'ai pas encore abordé les directives du préprocesseur (si
c'est bien de ça qu'il s'agit) et puis je ne trouve pas leur emploi
très simple...
Mais si je dois me mettre à l'assembleur, je devrais
apprendre à jongler. Si j'apprends l'assembleur par simple curiosité,
je sais que je m'engage pour plusieurs années sans trop savoir où je
vais.
Je sais que même avec beaucoup d'effort, je ne pourrais pas
arriver à la cheville d'une personne formée avec de l'expérience da ns
ce domaine. Je dois d'abord finir d'apprendre les bases du langage c
et il me semble qu'il reste encore du chemin et le plus dur est
d'ailleurs de combler les lacunes plutôt que d'avancer chapitre après
chapitre.
Pour en revenir à fopen, je trouve d'ailleurs assez dangereux la
fonction fopen en mode écriture.
Pour un fichier quelconque, fopen en mode écriture ouvre le fichier,
efface ce qu'il y a dedans tout en laissant le fichier intact du point
de vue de sa forme (l'icone existe toujours).
En effet, il manque fclose et fopen en mode lecture et accessoirement
fclose.
Mais même avec, la fonction de lecture plante ou alors il y a
un ÿ à la fin lors de la lecture sur l'écran...
Je vais revoir dans
les posts précédents s'il y n'y a pas eu un conseil que j'ai passé
sans donner d'importance parce que je n'avais pas donné la priorité à
la lecture écran. C'était plutôt au niveau de fscanf et des
enregistrements... Il y avait une réponse de Ed avec des directives
préprocesseur :
#if 0
/* cette fonction affiche le tout : alors le fichier est lisible */
void DisplayRec (FILE * FP_DESTI)
{
int c;
printf ("nnAFFICHAGE : n");
while ((c = getc (FP_DESTI)) != EOF)
putchar (c);
}
#endif
Mais je n'ai pas encore abordé les directives du préprocesseur (si
c'est bien de ça qu'il s'agit) et puis je ne trouve pas leur emploi
très simple...
Mais si je dois me mettre à l'assembleur, je devrais
apprendre à jongler. Si j'apprends l'assembleur par simple curiosité,
je sais que je m'engage pour plusieurs années sans trop savoir où je
vais.
Je sais que même avec beaucoup d'effort, je ne pourrais pas
arriver à la cheville d'une personne formée avec de l'expérience da ns
ce domaine. Je dois d'abord finir d'apprendre les bases du langage c
et il me semble qu'il reste encore du chemin et le plus dur est
d'ailleurs de combler les lacunes plutôt que d'avancer chapitre après
chapitre.
Pour en revenir à fopen, je trouve d'ailleurs assez dangereux la
fonction fopen en mode écriture.
Pour un fichier quelconque, fopen en mode écriture ouvre le fichier,
efface ce qu'il y a dedans tout en laissant le fichier intact du point
de vue de sa forme (l'icone existe toujours).