/* Programa de prueba que escribe un bloque en un fichero. Lee de la entrada estándar hasta que se pulsa Ctrl-D, o hasta leer el tamaño de un bloque de datos. Uso: escribe nombre_disco nombre_fichero num_bloque */ #include "sfbasico.h" #include "errores.h" #include <stdio.h> #include <errno.h> main (int argc,char* argv[]) { IFB ifb; char* bufer; WORD num_bloque; int tam_bloque_datos; if (argc<3) return 1; MontaSFB(argv[1],0); tam_bloque_datos = TamBloqueDatos(); bufer = (char*)malloc(tam_bloque_datos); num_bloque = atoi(argv[3]); ifb = BuscaFB(argv[2]); if (HAY_ERROR) return 2; { int nbytes=0; int ptr=0; while (ptr<tam_bloque_datos) { nbytes=read(0,bufer+ptr,tam_bloque_datos-ptr); if (nbytes==0) break; ptr+=nbytes; } printf("nbytes=%d errno=%d\n",ptr,errno); } EscribeBloqueFB (ifb,num_bloque,bufer); DesmontaSFB(); if (HAY_ERROR) return 2; }