3909Fermer3911
spectrasLe 10/03/2013 à 02:16
GoldenCrystal (./3904) :
./3897 > Pour les histoires d'identité/de droits, le coup de impersonate ne te va pas ?
Si.
Même si du coup c'est pas super l'isolation si t'as un thread de toto qui peut accéder à la mémoire du thread de Administrator.
GoldenCrystal (./3904) :
./3899 > Tu mettrais quoi comme gestion d'erreur dans un int main(int argc, char** args) { printf("Hello World\n"); return 0; } ? (Et ouais c'est hors sujet, mais je fais preuve de démarche scientifique pour trouver un exemple pratique à Kevin qui dit que du code sans bug n'existe pas en pratique )
Eh bien, par exemple, que la fonction printf peut échouer.
« If an output error is encountered, a negative value is returned. »
Auquel cas, la moindre des choses serait de quitter le programme avec un code d'erreur.
Comme quoi, même avec la meilleure volonté du monde sur un programme qui parait trivial on peut oublier de gérer des erreurs.
Maintenant, autre exercice similaire, le même en C++ en gérant toutes les exceptions susceptibles d'être levées. C'est un exercice intéressant, et ça permet de réaliser à quel point on peut sous-estimer le nombre de causes d'erreur.

Sinon oui c'est une autre approche, mais ça semble tendre au même objectif. A noter que les DLL ont toujours été moins coûteuses en linkage dynamique, parce qu'elles sont référencées par un numéro et pas par un symbole (le prog dit je veux la fonction n°3, 4 et 8 de la dll). C'est plus rapide, par contre ça part en segfault quand la version n'est pas bonne, vu que ça n'appelle pas les bonnes fonctions (on n'est pas à l'abri que les numéros des fonctions changent à chaque recompilation). C'est particulièrement dommage quand on sait que windows ne permet pas la cohabitation de plusieurs version d'une même DLL.
Mais bon, c'est quelque chose qu'on ne touche plus tellement ces jours ci, avec .NET.