Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/10/2013, 14:41
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 4 meses
Puntos: 83
Respuesta: duda con funcion fseek en c

No, SEEK_xxx es la posicion desde la que comienza el avance, pero el avance puede ser negativo. Si avanzas -1 desde SEEK_END moveras el puntero a la penultima posicion, si avanzas 1 desde SEEK_END moveras el puntero mas allá del EOF pero no te marcará ningun error.

El SEEK_END podras verlo muchas veces como parte de una funcion que determina el tamaño de un archivo a partir de un manejador:

Código C:
Ver original
  1. size_t get_file_size(FILE *handle) {
  2.     size_t orgpos, fsize;
  3.  
  4.     //guarda posicion original
  5.     orgpos = ftell(handle);
  6.  
  7.     //mueve a posicion final
  8.     fseek(handle, 0L, SEEK_END);
  9.  
  10.     //solicita posicion actual (equivale al tamaño en bytes)
  11.     fsize = ftell(handle);
  12.  
  13.     //restaura posicion original
  14.     fseek(handle, orgpos, SEEK_SET);
  15.  
  16.     return fsize;
  17. }

Saludos
vosk