typestar

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

  1. El tamaño del elemento y el conteo son argumentos separados.
  2. Un retorno corto significa fin del archivo o un error.
  3. La disposición de un struct varía entre máquinas: no es un formato portable.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 4 en Escritura y binario; paso 6 de 12 en Archivos y E/S.

← Anterior Siguiente →