Mise à jour de la FAQ liée à la norme C11

Le
Éric Lévénez
Bonjour, et joyeux Noël !

Suite à la publication de la nouvelle norme C11, je viens de mettre à
jour la FAQ de fclc. La version provisoire de celle-ci se trouve ici
<http://www.levenez.com/lang/c/faq.new/>

Merci d'indiquer ici toutes vos remarques concernant la mise à jour de
la FAQ.

--
Éric Lévénez
FAQ de fclc : <http://www.levenez.com/lang/c/faq/> (ancienne FAQ)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
cLx
Le #24104521
On 25/12/2011 14:22, Éric Lévénez wrote:
Bonjour, et joyeux Noël !

Suite à la publication de la nouvelle norme C11, je viens de mettre à jour la
FAQ de fclc. La version provisoire de celle-ci se trouve ici

Merci d'indiquer ici toutes vos remarques concernant la mise à jour de la FAQ.



Il y a une petite faute de frappe à fclc003#q_7:
"Son nom de code étit C1X et est maintenant C11."
^^^^
Éric Lévénez
Le #24104591
Le 25/12/11 15:15, cLx a écrit :

Il y a une petite faute de frappe à fclc003#q_7:
"Son nom de code étit C1X et est maintenant C11."
^^^^



Merci, c'est corrigé.

--
Éric Lévénez
FAQ de fclc :
Tonton Th
Le #24106561
On 12/25/2011 02:22 PM, Éric Lévénez wrote:

Suite à la publication de la nouvelle norme C11, je viens de mettre à
jour la FAQ de fclc. La version provisoire de celle-ci se trouve ici

Merci d'indiquer ici toutes vos remarques concernant la mise à jour de
la FAQ.



12.9 Doit-on libérer explicitement la mémoire avant de quitter
un programme ?

Oui, car tous les systèmes ne le span pas d'eux-mêmes.

"span" ???

--

Nous vivons dans un monde étrange/
http://foo.bar.quux.over-blog.com/
Éric Lévénez
Le #24106711
Le 26/12/11 20:37, Tonton Th a écrit :

12.9 Doit-on libérer explicitement la mémoire avant de quitter
un programme ?

Oui, car tous les systèmes ne le span pas d'eux-mêmes.

"span" ???



Corrigé (sur
Merci.

--
Éric Lévénez
FAQ de fclc :
Xavier Roche
Le #24107281
Le 26/12/2011 22:57, Éric Lévénez a écrit :
12.9 Doit-on libérer explicitement la mémoire avant de quitter
un programme ?
Oui, car tous les systèmes ne le (font) pas d'eux-mêmes.





Bof. C'est une "good practice" dans l'absolu mais amha une perte de
temps sous POSIX
(http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html) et
à priori tout ce qui n'est pas embarqué.

Il est même parfois bien de ne pas faire free() en fermeture, pour
accélérer le processus. exit() s'occupera alors de désallouer le ou les
blocs mappés sans avoir à toucher aux pages potentiellement inactives.
(celui qui a déjà perdu quelques minutes à fermer une grosse application
passée à moitié en swap comprendra)
Éric Lévénez
Le #24107301
Le 27/12/11 10:57, Xavier Roche a écrit :
Le 26/12/2011 22:57, Éric Lévénez a écrit :
12.9 Doit-on libérer explicitement la mémoire avant de quitter
un programme ?
Oui, car tous les systèmes ne le (font) pas d'eux-mêmes.





Bof. C'est une "good practice" dans l'absolu mais amha une perte de
temps sous POSIX
(http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html) et
à priori tout ce qui n'est pas embarqué.

Il est même parfois bien de ne pas faire free() en fermeture, pour
accélérer le processus. exit() s'occupera alors de désallouer le ou les
blocs mappés sans avoir à toucher aux pages potentiellement inactives.
(celui qui a déjà perdu quelques minutes à fermer une grosse application
passée à moitié en swap comprendra)



Ce fil de discussion porte sur la mise à jour de la FAQ liée à C11
( aux évolutions de la FAQ sur d'autres points techniques devrait être
traité dans d'autres fils.

Pour chaque point de la FAQ il peut (et il y a eu) débat. Rien n'est
figé, mais avant de modifier certains points, je préfère que plusieurs
personnes donnent leurs expertises sur le sujet.

Pour le exit(), même si pratiquement tous les systèmes libèrent la
mémoire ; apprendre aux débutants à la libérer n'est pas, à mon avis,
une absurdité. Quand ils auront muris, il sera temps pour eux de
comprendre qu'il peut y avoir d'autres voies. :-)

--
Éric Lévénez
FAQ de fclc :
Xavier Roche
Le #24108281
Le 27/12/2011 11:17, Éric Lévénez a écrit :
Pour le exit(), même si pratiquement tous les systèmes libèrent la
mémoire ; apprendre aux débutants à la libérer n'est pas, à mon avis,
une absurdité.



Ah totalement d'accord. J'ai déjà vu du reste le contraire: aucun free
dans un programme car "de toute manière il est lancé une fois et rend la
main". Brrr.

Quand ils auront muris, il sera temps pour eux de
comprendre qu'il peut y avoir d'autres voies. :-)



En fait la question mérite d'être posée ; très peu de programmes au
final se permettent d'ignorer un free() lors de leur fermeture (à partir
du moment où on sait que le programme va être tué, l'allocateur pourrait
ignorer simplement tout free)

C'est probablement par manque d’intérêt (pourquoi s'embêter a optimiser
la sortie d'un programme), mais peut être aussi des "good practices" qui
pourrait être ponctuellement altérées.

[Certains OS du reste commencent a avoir des stratégies de "sortie"
différente: en cas d'arrêt de la machine, nul besoin de désallouer de la
mémoire qui fera perdre du temps (CPU, swap), et autant accélérer tout
le processus.]

Bon enfin c'était un détail un peu insignifiant [qui est du coup un peu
mal placé dans ce fil il est vrai]
Tonton Th
Le #24112541
On 12/25/2011 02:22 PM, Éric Lévénez wrote:

Suite à la publication de la nouvelle norme C11, je viens de mettre à
jour la FAQ de fclc. La version provisoire de celle-ci se trouve ici

Merci d'indiquer ici toutes vos remarques concernant la mise à jour de
la FAQ.



http://www.levenez.com/lang/c/faq.new/fclc013.html#q_19
The requested URL /~pornin/ucpp/ was not found on this server.

--

Nous vivons dans un monde étrange/
http://foo.bar.quux.over-blog.com/
espie
Le #24112601
In article Tonton Th
On 12/25/2011 02:22 PM, Éric Lévénez wrote:

Suite à la publication de la nouvelle norme C11, je viens de mettre à
jour la FAQ de fclc. La version provisoire de celle-ci se trouve ici

Merci d'indiquer ici toutes vos remarques concernant la mise à jour de
la FAQ.



http://www.levenez.com/lang/c/faq.new/fclc013.html#q_19
The requested URL /~pornin/ucpp/ was not found on this server.



Les sources sont toujours dispo, par exemple, sur les miroirs des
divers bsd.

(ftp://ftp.openbsd.org/pub/OpenBSD/distfiles/ucpp-*)

Maintenant, je viens de demander a Thomas s'il avait remis ucpp en
ligne quelque part depuis son demenagement...
espie
Le #24112751
In article
In article Tonton Th
On 12/25/2011 02:22 PM, Éric Lévénez wrote:

Suite à la publication de la nouvelle norme C11, je viens de mettre à
jour la FAQ de fclc. La version provisoire de celle-ci se trouve ici

Merci d'indiquer ici toutes vos remarques concernant la mise à jour de
la FAQ.



http://www.levenez.com/lang/c/faq.new/fclc013.html#q_19
The requested URL /~pornin/ucpp/ was not found on this server.



Les sources sont toujours dispo, par exemple, sur les miroirs des
divers bsd.

(ftp://ftp.openbsd.org/pub/OpenBSD/distfiles/ucpp-*)

Maintenant, je viens de demander a Thomas s'il avait remis ucpp en
ligne quelque part depuis son demenagement...




hop, repris par quelqu'un d'autre:

http://code.google.com/p/ucpp/
Publicité
Poster une réponse
Anonyme