Hello,

Une fonction a été écrite en C sous 32 bits en utilisant non pas les fonctions standards genre fgets() mais les pointeurs bas niveau sur une structure de type _FILE.
Or il semble que ce fonctionnement ne soit plus disponible sur un environnement 64 bits. Comment réécrire la fonction suivante svp ?

Merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int machin(char *Buf, int Lg, FILE *Fic) {
      char *PtBuf;
      char Car;
      char *FinBuf;
 
      if (feof(Fic)) return(0);
      PtBuf = Buf;
      FinBuf = PtBuf + Lg - 1;
      do {
            if(Fic->_cnt == 0) {
                  _filbuf(Fic);
                  if(feof(Fic)) return(PtBuf - Buf);
                  if(Fic->_ptr != Fic->_base) {
                        Fic->_cnt += Fic->_ptr - Fic->_base;
                        Fic->_ptr = Fic->_base;
                  }
            }
            PtBuf[0] = Car = Fic->_ptr[0];
            Fic->_ptr ++;
            Fic->_cnt --;
            PtBuf ++;
      }
      while ((Car != '\n') && (PtBuf < FinBuf) && !feof(Fic));
      PtBuf[0] = 0;
      return(PtBuf - Buf);
}