[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-team] Question C et Linux



Hello !

J'ai une question difficile de C sur Linux. Considerons le programme suivant:
/*** testeda.c ***/
#include <stdio.h>

main()
{
char *ptr="Hello";
ptr[0]='P';
}
/**************/

Ce programme marche sur Windows ainsi que sur la plupart des Unix que j'ai
testes (Sinix, AIX, NCR, ...) sauf sur Linux. Sous Linux, j'ai un
segmentation fault.

Ceci dit, c'est normal. ptr est un pointeur. Ce pointeur est dans le
segment de donnees et pointe sur une chaine dans le segment de code. Et le
segment de code est cense etre read-only... D'ou l'erreur. Dans ce
programme de test, il suffit de declarer char ptr[]="Hello" pour que la
string soit allouee dans le segment de data mais dans le cadre du portage
d'un certain soft, ce n'est pas utilisable.

La question est: est-il possible de forcer GCC (ou egcs) a permettre ce
genre de chose ?

Et oui, j'ai RTFM. ;-)

Eric.


---------
This message was send by Majordomo 1.94.3. Please repport problems to
manu@rtfm.be. If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.