fseek() vs rebobinar() en C

En C, se debe preferir fseek() a rewind().

Tenga en cuenta el siguiente estándar de texto C99:
la función de rebobinado establece el indicador de posición del archivo para la secuencia a la que apunta la secuencia al principio del archivo. es equivalente a

(void)fseek(stream, 0L, SEEK_SET)

excepto que el indicador de error de la secuencia también se borra.

El siguiente ejemplo de código establece el indicador de posición de archivo de un flujo de entrada al principio usando rewind(). Pero no hay forma de verificar si el rebobinado() fue exitoso.

int main()
{
  FILE *fp = fopen("test.txt", "r");
  
  if ( fp == NULL ) {
    /* Handle open error */
  }
  
  /* Do some processing with file*/
  
  rewind(fp);  /* no way to check if rewind is successful */
  
  /* Do some more precessing with file */
  
  return 0;
}

En el código anterior, se puede usar fseek() en lugar de rewind() para ver si la operación tuvo éxito. Las siguientes líneas de código se pueden usar en lugar de rebobinar (fp);

if ( fseek(fp, 0L, SEEK_SET) != 0 ) {
  /* Handle repositioning error */
}

Fuente:
https://www.securecoding.cert.org/confluence/display/seccode/FIO07-C.+Prefer+fseek%28%29+to+rewind%28%29

Este artículo es una contribución de Rahul Gupta . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *