Lecturas y escrituras binarias en C
fread y fwrite mueven registros, y ambos devuelven cuántos manejaron.
#include <stdio.h>
typedef struct {
int id;
double score;
} Record;
size_t save_records(const char *path, const Record *rows, size_t n) {
FILE *f = fopen(path, "wb");
if (f == NULL) {
return 0;
}
size_t written = fwrite(rows, sizeof(Record), n, f);
fclose(f);
return written;
}
size_t load_records(const char *path, Record *rows, size_t max) {
FILE *f = fopen(path, "rb");
if (f == NULL) {
return 0;
}
size_t read = fread(rows, sizeof(Record), max, f);
fclose(f);
return read;
}
Cómo funciona
- El tamaño del elemento y el conteo son argumentos separados.
- Un retorno corto significa fin del archivo o un error.
- La disposición de un struct varía entre máquinas: no es un formato portable.
Palabras clave y builtins usados aquí
FILENULLcharconstdoubleifintreturnsize_tsizeofstructtypedef
El intento, en números
- Líneas
- 26
- Caracteres a escribir
- 481
- Tokens
- 150
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 90 segundos.
Paso 2 de 4 en Escritura y binario; paso 6 de 12 en Archivos y E/S.