Archivos y E/S
12 pasos en 4 series de C.
stdio, como se debe. Abrir y leer, escribir texto y binario, y luego el posicionamiento y el comportamiento de los streams que explica por qué tu salida aparece en el orden equivocado cuando mezclas printf con write.
Doce pasos, y la serie de buffering es la que se paga sola. Búfer por líneas hacia una terminal y por bloques hacia una tubería es la razón de que la salida de un programa se vea bien en modo interactivo y llegue en el orden equivocado al redirigirla a un archivo. Sin ningún glamur, y necesario todo el tiempo.
Abrir y leer
- Abrir y cerrar archivosfopen devuelve NULL al fallar, y cada apertura exitosa necesita su cierre.
- Leer líneas con fgetsfgets es el lector de líneas seguro: recibe un tamaño y siempre termina la cadena.
- La trampa de feoffeof avisa que una lectura ya falló; probarlo antes lee una línea de más.
- Leer un archivo enteroIr al final para el tamaño, reservar eso más uno y leerlo todo en una llamada.
Escritura y binario
- Escribir un reporte formateadofprintf escribe a cualquier stream con el mismo lenguaje de formato que printf.
- Lecturas y escrituras binariasfread y fwrite mueven registros, y ambos devuelven cuántos manejaron.
- Copiar un archivo por bloquesUn búfer fijo: leer hasta quedarse corto, escribir exactamente lo leído.
- Archivos temporalestmpfile te da un stream que se borra solo cuando se cierra.
Posicionamiento y streams
- Moverse dentro de un archivofseek mueve el cursor, ftell lo reporta, rewind lo manda a casa.
- Los tres streams estándarstdin, stdout y stderr, y por qué los diagnósticos van en el tercero.
- errno y perrorCuando una llamada falla, errno dice por qué, y perror lo imprime con tu prefijo.
Bis
- wc_clone.cUn clon de wc: leer archivos nombrados o stdin y contar líneas, palabras y bytes.