/*
	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;

}