Comprendre fonction write

Résolu/Fermé
Signaler
-
Messages postés
609
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
24 juin 2016
-
Bonjour,je viens d'utiliser la fonction write sans vraiment la comprendre, j'aimerais donc quelques explication.
Voilà ma fonction: write(1, &c, 1)
Je voudrais savoir à quoi correspond chaque chose dans la parenthèse.
Merci.


A voir également:

3 réponses


J'ai fait write(1, 0123456789, 10)
Pour afficher les nombre de 0 à 9.
1

Je précise que c'est du C.
0
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 803
Bonjour,

Pas besoin de faire des triplons, on ne répondra pas plus vite...

Il faut se reporter au man : http://manpagesfr.free.fr/man/man2/write.2.html

Pour info, write() n'est pas standard. On utilise plutôt fwrite().

Sinon, pour le write(), le type est : ssize_t write(int fd, const void *buf, size_t count)
Donc pour le premier argument, il faut le descripteur. En second, il faut l'adresse d'un pointeur. Donc plutôt "0123456789" entre guillemets. Et enfin la taille, ça ok.

Cdlt,
-1
Messages postés
609
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
24 juin 2016
47
Bonjour
il faut comprendre par ce que veut dire @fiddy que fwrite est du type ANSI C et mieux optimisé que write qui est du type POSIX qui n'est pas bien optimisé à la lecture de fichiers que celle des ANSI
à bientôt
0
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 803
Je voulais surtout dire dire que fwrite() marchera sur n'importe quel système. L'autre ne fonctionnera que sur les POSIX.
De plus, ce ne sont pas des fonctions même niveau.
En plus, write() est bloquant, etc. Bref, l'avantage d'utiliser des wrapper c'est aussi de programmer en faisant abstraction de la couche système...
0
Messages postés
609
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
24 juin 2016
47
Exacte mais défois faut prendre en compte cet aspect système et je me pose la question suivante existe-t-il un système d'exploitation totalement ANSI pur ?
0
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 803
Ce n'est pas le système qui est ANSI.
Dis autrement, si tu programmes en C standard, dès lorsque tu auras un compilateur, il y aura la bibliothèque libc qui sera implémentée assurant le fonctionnement du programme.
Pour le Posix, c'est une logique différente. C'est pour ça que ce n'est pas une même niveau.
0
Messages postés
609
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
24 juin 2016
47
oui ça j'ai bien compris mais pourrais ton ne pas avoir toutes les couches système portable et par définition avoir un système indirectement portable voir portable tout court ? même si étant une idée l'appliquer c'est différent
0