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 originalsize_t get_file_size(FILE *handle) {
size_t orgpos, fsize;
//guarda posicion original
//mueve a posicion final
fseek(handle
, 0L, SEEK_END
);
//solicita posicion actual (equivale al tamaño en bytes)
//restaura posicion original
fseek(handle
, orgpos
, SEEK_SET
);
return fsize;
}
Saludos
vosk