Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

11 réponses
Avatar
É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)

10 réponses

1 2
Avatar
cLx
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
<http://www.levenez.com/lang/c/faq.new/>

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."
^^^^
Avatar
Éric Lévénez
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 : <http://www.levenez.com/lang/c/faq/> (ancienne FAQ)
Avatar
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
<http://www.levenez.com/lang/c/faq.new/>

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/
Avatar
Éric Lévénez
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 <http://www.levenez.com/lang/c/faq.new/>).

Merci.

--
Éric Lévénez
FAQ de fclc : <http://www.levenez.com/lang/c/faq/> (ancienne FAQ)
Avatar
Xavier Roche
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)
Avatar
Éric Lévénez
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
(<http://www.levenez.com/lang/c/faq.new/>). En fait tout ce qui touche
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 : <http://www.levenez.com/lang/c/faq/> (ancienne FAQ)
Avatar
Xavier Roche
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]
Avatar
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
<http://www.levenez.com/lang/c/faq.new/>

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/
Avatar
espie
In article <4efc94e0$0$30984$,
Tonton Th wrote:
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
<http://www.levenez.com/lang/c/faq.new/>

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...
Avatar
espie
In article <jdi64b$2iek$, Marc Espie wrote:
In article <4efc94e0$0$30984$,
Tonton Th wrote:
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
<http://www.levenez.com/lang/c/faq.new/>

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/
1 2