binmode sur le descripteur fonctionne en effet tr�s bien pour WIN32 et
solutionne ton probl�me de fa�on propre (par rapport � l'OS)

Il n'a aucun effet sous Unix ou sous des OS qui utilise un seul caract�re
pour la fin des lignes.

Puisque binmode ne prends en cas que les \r\n et le EOF qui est marqu�
avec un control Z.



-- 
Alexandre Dulaunoy              http://www.foo.be/
AD993-RIPE                      http://www.ael.be/
"People who fight may lose.  People who do not fight have already lost."
  - Bertolt Brecht


On Wed, 5 Jun 2002, Alain EMPAIN wrote:

> Bonjour tout le monde,
>
> je n'ai pas l'habitude de faire du r�tro-portage, mais pour faire plaisir �
> un coll�gue (utilisant NT), je lui ai donn� un script perl d�velopp� sous
> Linux.
>
> Cela coince au niveau de la lecture d'un fichier binaire (> 100 KB) : la
> lecture
>     while ( read(ABI,$buf,1000) ) {  }
> stoppe apr�s 3112 bytes.
>
> J'ai de vieux souvenirs du CP/M et de DOS, o� CTRL-Z servait de marqueur de
> fin de fichier : en effet en position 3112, il y a '1A' hex : incroyable mais
> vrai.
>
> A tout hasard, j'ai essay� 'sysread', qui donne le meme r�sultat.
>
> 
>--------------------------------------------------------------------------------------
> J'ai trouv�, mais cela vaut peut-etre la peine de partager la r�ponse :
>
>     perl cookbook p 292-293
>
> "This legacy of the old CP/M filesystem ... has frustrated programmers for
> decades, an no end is in sight. Because DOS is compatible with CP/M file
> formats, Windows with DOS, and NT with Windows, the sins of the fathers have
> truly been visited unto the children of the fourth generation."
>
> La parade : d�clarer le file handle comme binaire avec
>
> 'binmode(ABI);'  : sous Unix, Mac & Plan9, cela est inutile mais prend toute
> son importance sous DOS, Win...
>
> 
>--------------------------------------------------------------------------------------
>


Répondre à