El size_t fs es un fallo mio, primero queria ponerte como recuperar el tamaño en una variable y despues comprovar la variable
Pero al final opté por comprovar directamente el retorno y olvidé quitar la variable, es decir que en este caso no hace nada. Disculpa este despiste :)
El segundo argumento de fseek es el offset al que va a moverse el puntero desde la posicion que se le indica; por ejemplo SEEK_SET indica que se situe al inicio, si le doy un offset de 3 se situará al byte 3 contando desde el principio. Si estuviese en medio del archivo y le digo que se mueva a SEEK_CUR con un offset de 0 no movera el puntero , pero si le digo SEEK_CUR con un offset de 5 avanzará 5 bytes desde la posicion actual (cualquiera que sea). La L sirve para notar que me refiero a un valor de tipo long, puedes omitirla. O si por ejemplo quieres moverte a la ultima posicion del archivo le dices que salte a SEEK_END con un offset de -1, movera el puntero al final del archivo y luego retrocederá 1 byte.
Saludos
vosk