pourquoi fseek ne marche pas pour ce stream ?

pourquoi fseek ne marche pas pour ce stream ? - C - Programmation

Marsh Posté le 11-03-2005 à 01:18:09    

Code :
  1. void gettext(FILE *send, FILE *read, char *string)
  2. {
  3.        
  4. long lSize;
  5.  char * buffer;
  6. int length;
  7.         char command[128]="GETTEXT ";
  8.         strcat (command,string);
  9.         length = strlen(command);
  10. command[length] = 0xff;
  11.      
  12. fprintf(send,"%s",command);
  13. fflush(send);
  14. if (read==NULL) { printf("opening failed\n" ); exit (1);}
  15. // obtain file size.
  16.  fseek (read , 0 , SEEK_END);
  17.    lSize = ftell (read);
  18. printf("%d",lSize);
  19.         rewind (read);
  20. // allocate memory to contain the whole file.
  21.         buffer = (char*) malloc (lSize);
  22.         if (buffer == NULL) { printf("error buffer empty\n" ); exit (2);}
  23. // copy the file into the buffer.
  24. fread (buffer,1,lSize,read);
  25. printf(buffer);
  26. free (buffer);
  27. //while ((c = fgetc(read)) != EOF) { putchar(c); }
  28.         //printf("\n" );
  29. }


 
read n'est pas vide, vu que  
 
//while ((c = fgetc(read)) != EOF) { putchar(c); }
        //printf("\n" );
 
renvoie tout le text.
 
fseek (read , 0 , SEEK_END); renvoie -1 :/

Reply

Marsh Posté le 11-03-2005 à 01:18:09   

Reply

Marsh Posté le 11-03-2005 à 01:23:30    

le stream en question provenant de louverture d un socket.

Reply

Marsh Posté le 11-03-2005 à 02:44:55    

up

Reply

Marsh Posté le 11-03-2005 à 07:41:12    

fseek est indisponible pour une socket, c'est un flux à accès sequentiel et non continu.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 11-03-2005 à 22:26:07    

hum, comment pourraije faire une boucle simple qui lise ce stream en utilisant des buffers ? sachant que le stream contiendra un ou plusieurs NULL, et ce finit par EOF ?
 
je n ai pas acces a getline, fread est la solution ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed