Portage win -> linux aie aie !

Portage win -> linux aie aie ! - C++ - Programmation

Marsh Posté le 22-10-2002 à 11:45:10    

Je vais devoir développer un gros projet sous Linux :cry: et va donc falloir que je porte pas mal de code.
Ca me pose problème pour les fonctions suivantes IsBadReadPtr, IsBadWritePtr,... qui sont vraiment très utiles (indispensables même) alors j'aimerais savoir si il existe leur equivalent sous Linux.
 

Reply

Marsh Posté le 22-10-2002 à 11:45:10   

Reply

Marsh Posté le 22-10-2002 à 13:45:36    

bah indispensable, non, normalement tu devrais meme pouvoir t'en tirer sans, non ?

Reply

Marsh Posté le 22-10-2002 à 14:14:48    

Si y a pas d'équivalent direct, "suffira" de réécrire ces fonctions spécifiques.
 
L'API PointDsRect je l'ai réécrite sous Windows car elle ne prenait pas les points inversés. Au lieu de faire inversion avant, je me suis écrit ma fonction...

Reply

Marsh Posté le 22-10-2002 à 15:24:46    

J'ai pas vraiment envie de me taper la réécriture d'appels systemes. En plus j'ai pas le niveau pour savoir si mon processus a le droit d'aller lire ou ecrire dans telle zone memoire.
 

Reply

Marsh Posté le 22-10-2002 à 15:53:46    

apprends le C/C++ et oublie Visual: ca fonctionnera sous linux et windows


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 22-10-2002 à 15:59:19    

Taz@PPC a écrit a écrit :

apprends le C/C++ et oublie Visual: ca fonctionnera sous linux et windows




Merci mais je connais le c et c++, et au passage ca n'a rien avoir avec visual. Je savais pas que visual proposait des appels système :pt1cable: . Mais bon si c'est juste que je n'y connais rien en C, ben ca doit pas etre difficile pour toi de me proposer une solution.


Message édité par hellbilly le 22-10-2002 à 15:59:48
Reply

Marsh Posté le 22-10-2002 à 19:42:34    

hellbilly a écrit a écrit :

 
Merci mais je connais le c et c++, et au passage ca n'a rien avoir avec visual. Je savais pas que visual proposait des appels système :pt1cable: . Mais bon si c'est juste que je n'y connais rien en C, ben ca doit pas etre difficile pour toi de me proposer une solution.




 
il voulait juste te dire que ton code est archi crade mais il osait pas le dire

Reply

Marsh Posté le 22-10-2002 à 20:17:54    

hellbilly a écrit a écrit :

 
Ca me pose problème pour les fonctions suivantes IsBadReadPtr, IsBadWritePtr,... qui sont vraiment très utiles (indispensables même) alors j'aimerais savoir si il existe leur equivalent sous Linux.




 
Serieusement, a quoi te servent ces fonctions ? A debugger n'est-ce pas ?
- N'utilise pas des pointeurs que tu stockes passe partout, que tu incrementes partout et que tu stockes partout.
- Fais de belles classes, qui resolvent chacune un probleme
- Si tu dois chercher des bugs, utilise ton debugger et des programmes comme valgrind (libre !) ou BoundChecker ou Purify.

Reply

Marsh Posté le 23-10-2002 à 13:32:11    

fabsk a écrit a écrit :

 
 
Serieusement, a quoi te servent ces fonctions ? A debugger n'est-ce pas ?
- N'utilise pas des pointeurs que tu stockes passe partout, que tu incrementes partout et que tu stockes partout.
- Fais de belles classes, qui resolvent chacune un probleme
- Si tu dois chercher des bugs, utilise ton debugger et des programmes comme valgrind (libre !) ou BoundChecker ou Purify.




 
Je les utilise pas pour debugger mais pour tester si les pointeurs passés en paramètres de fonctions sont valides. Ca evite par exemple d'appeler une méthode d'un objet à partir de son pointeur alors que l'objet n'est pas (ou plus) valide.
C'est sur je peux m'en passer mais avec j'ai un code plus robuste.

Reply

Marsh Posté le 23-10-2002 à 14:35:20    

D'habitude, pour avoir ce niveau de robustesse, on réinitialise à NULL tous les pointeurs qu'on désalloue ou qu'on n'a pas encore alloué, explicitement. La vérification consiste ensuite à comparer son pointeur à NULL.

Reply

Marsh Posté le 23-10-2002 à 14:35:20   

Reply

Marsh Posté le 23-10-2002 à 20:32:49    

BifaceMcLeOD a écrit a écrit :

D'habitude, pour avoir ce niveau de robustesse, on réinitialise à NULL tous les pointeurs qu'on désalloue ou qu'on n'a pas encore alloué, explicitement. La vérification consiste ensuite à comparer son pointeur à NULL.




 
D'habitude, pour avoir ce niveau de robustesse, on utilise des smart pointers, pas des pointeurs "de base". Et des containers de la STL quand c'est possible.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed