:o/

Oct 06, 2011 85 Replies

Le Sat, 15 Oct 2011 19:46:35 +0200, maioré écrivait :

C'est parce qu'un fflush() implicite est fait par la fonction _exit() appelée à la fin de l'exécution du programme. Si tu colles un printf("Hello, Word") au milieu d'un programme, rien ne te garantit qu'il sera affiché. Je connais même un système où le buffer n'est envoyé vers stdout que lorsqu'il reçoit un '\n' (+'\r' si on veut repartir en début de ligne) et la routine de sortie l'affiche quand elle a le temps (sauf si un fflush() sournois force cet affichage).

JKB

Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr

Le Sat, 15 Oct 2011 19:49:30 +0200, disco67 écrivait :

Parlez-moi de votre enfance... ;-)

JKB

Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr

Le Sat, 15 Oct 2011 19:49:38 +0200, LeLapin écrivait :

Tu risques de devoir trier un bac de cartes _sans_ le coup de feutre sur le côté ! Mon thérapeute m'a toujours interdit de toucher à un truc qui ressemble au COBOL !

JKB

Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr

Le Sat, 15 Oct 2011 19:53:20 +0200, LeLapin écrivait :

préferé

Mouarf... Et du Pascal, j'en ai fait pas mal. Entre nous, j'aimerais assez bien qu'on m'explique la différence entre C et Pascal (hors syntaxe et quelques trucs de contrôle). L'un est aussi mauvait que l'autre lorsqu'on essaie de faire un code fiable.

JKB

Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr

On 15 oct, 19:34, JKB

Argh !

PROGRAM GOODBYE WRITE (*,10) " Good bye, World ! " 10 FORMAT(A12) END

Allez, quoi, allez, tu nous les expliques ... alleeeeeeeeez !

( et pourquoi pas en Cobol, vite fait avant l'ap=E9ro ? )

On 15 oct, 18:40, LeLapin

| Dennis Ritchie, est mort le 12/10/2011

Y'en a qui bossent et qui ont autre chose =E0 faire que de zoner tout le temps sur le Net :o=DE

On 15 oct, 18:35, disco67

}

... bien vu !

Y'avait aussi

exit();

ou

return;

mais c'est moins =E9l=E9gant.

On 15 oct, 19:53, LeLapin

La bonne blague !

Tiens, pour la peine, encore une couche :

formatting link

On 15 oct, 19:57, JKB

=E0 l'envi par

=E0

j'aimerais

scal (hors

mauvait que

... mauvait ?

Tu lis trop Usenet !

Jean-Christophe a tapoté du bout de ses petites papattes :

Tu ne lis pas mes posts ? En plus c'était un hommage à notre école commune. :)

LeLapin

Le Sat, 15 Oct 2011 10:58:43 -0700 (PDT), Jean-Christophe écrivait :

Il y a des caractères en trop...

JKB

Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr

Le Sat, 15 Oct 2011 11:12:38 -0700 (PDT), Jean-Christophe écrivait :

par

j'aimerais

que

J'ai surtout honte...

Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr

Le Sat, 15 Oct 2011 10:51:34 -0700 (PDT), Jean-Christophe écrivait :

Parce que tu rends la main au système au travers de _exit(). Si tu ne rends pas la main au système, il n'y a aucune raison que ce soit synchrone.

Même remarque.

Nous sommes bien d'accord.

JKB

Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr

On 15 oct, 21:02, JKB

| S'il n'y a pas un '\n' =E0 la fin de la cha=EEne, il vaut mieux | ajouter un fflush(stdout) pour =EAtre s=FBr que =E7a s'affiche.

| Parce que tu rends la main au syst=E8me au travers de _exit(). | Si tu ne rends pas la main au syst=E8me, | il n'y a aucune raison que ce soit synchrone.

J'ai compil=E9 et ex=E9cut=E9 ceci sous DOS ( avec VC++ v6.0 sur un PC sous Win7) le programme affiche *instantan=E9ment* : Hello, world ! puis une pause de 4 secondes puis l'affichage donne : Hello, world !Goodbye, world ! puis il stoppe.

/* -------------------------------- */ #include

int main(void) { const unsigned int max =3D 0xFFFFFFF0; unsigned int i, j, k, l, z=3D0;

printf("Hello, world !");

for( i=3D3; --i; ) for( j=3Dmax; --j; ) for( k=3Dmax; --k; ) for( l=3Dmax; --l; ) ++z;

printf("Goodbye, world !");

return 0; }

"JKB" a écrit dans le message de news: snipped-for-privacy@rayleigh.systella.fr...

============== Oui, il y a des particularités, c'est pourquoi je précise avec la suite " Borland C++" pas de problème. "\n" saut de ligne et début de ligne. "\r" début de ligne sans saut .. Sans contrôle de position , la chaîne s'affiche quand même mais à la dernière position du curseur . Les "vieux C" fonctionnaient de cette façon je crois . Bonne journée

JKB formulated on samedi :

Dit il du haut de son siege ejectable...

Jean-Christophe submitted this idea :

On peut aussi lire cette page...

formatting link

...

Le Sat, 15 Oct 2011 13:55:52 -0700 (PDT), Jean-Christophe écrivait :

Je crois surtout que tu as un problème de compréhension de la norme. Le fait que rien ne t'assure que ce soit affiché immédiatement ne l'interdit pas. C'est un peu comme en maths. Lorsqu'une mère dit à son gosse que s'il n'est pas sage, il aura une claque ne signifie en aucun emanière que s'il est sage, il n'en aura pas ;-)

Quant à utiliser VC++ comme archétype de la norme C, eh bien, comment dire...

JKB

Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr

On 16 oct, 10:48, JKB

Qu'ouis-je ? Ceci est un affront ! Puisque nous habitons tous deux la capitale, rendez-vous aujourd'huy =E0 15 heures sur le Champ de Mars, avec nos t=E9moins. Et bien qu'=E9tant l'offens=E9, je te laisse le choix des armes. (Silex, Quatrains, Piolet, Octo-syllabes, Katana, Vax ...)

Pourtant un ordinateur est une machine d=E9terministe, alors qu'est-ce qui cause que ce sera affich=E9 ou pas ?

Ok.

Je vois ce que tu veux dire, et suis tout =E0 fait d'accord. J'ai utilis=E9 ce que j'avais sous la main, =E0 la maison.

Mais =E0 l'=E9poque o=F9 au boulot j'=E9crivais des softs sous DOS, quand j'affichais la progression des traitements vers l'=E9cran via printf() je n'ai *jamais* constat=E9 cela. (je conviens que ce n'est pas un contre-argument =E0 ta r=E9ponse, mais bon, quand m=EAme ... )

En principe, c'est fait automatiquement par exit()

Nous vivons dans un monde étrange/ http://foo.bar.quux.over-blog.com/

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required