Re: c gnu/microsoft

Page principale

Répondre à ce message
Auteur: Miguel Moquillon
Date:  
À: guilde
Sujet: Re: c gnu/microsoft
On Sat, Oct 02, 2004 at 12:30:06PM -0400, Patrick Dupre wrote:
> Merci pour la reponse. mais quand j'utilise fcntl.h, je
> recupere toujours une erreur:
> error: '_O_BINARY' undeclared
> Donc, je dois modifier cette ligne de code, mais je ne comprends pas
> pourquoi ou comment _open(argv[iIndex], _O_BINARY | _O_RDONLY) ;
> devient open(char *, int flag, ...). ?
> _open -> open (cela n'a rien a voir avec fnctl.h !)
> _O_RDONLY -> "r" (rien a voir avec fnctl.h !)
> _O_BINARY -> ???


Ha, pardon, j'avais mal lu ton post.
En fait, _open et tous les _<machin truc> semblent être des trucs propres
à Microsoft, histoire d'embêter le développeur qui souhaite porter ses
applis autres que sous MS-Windows.
En général, en C, c'est plutôt open, read, write et sont des fonctions
de type, à l'origine, Unix. (Rien n'empêche de Microsoft de les
implémenter pour sa propre plate-forme.)
Donc dans ton cas, il faudrait que tu reécrivres ta fonction comme :
open (argv[iIndex], O_BINARY | O_RDONLY)
Toutefois, le flag O_BINARY (ou _O_BINARY) n'existe pas sous Unix.

Si par contre, tu veux des trucs standards, utilises alors plutôt les
fonctions porpre au C et non propre à une plate-forme particulère:
fopen en lieu et place à open ou _open par exemple.

--
Miguel Moquillon
jabber:moqui@???, moqui@???
http://miguel.moquillon.free.fr