/************************************************/
/* soubor IO_PV02.C				*/
/* cte binarni soubor ODMOC.DTA, ktery obsahuje	*/
/* hodnoty druhych odmocnin od 1 do 99		*/
/* hodnoty jsou typu float			*/
/* hledanou hodnotu odmocniny najde v souboru	*/
/* pomoci lseek					*/
/************************************************/

#include <stdio.h>
#include <io.h>
#include <fcntl.h>

int main(void)
{
 const int mez = 100;
 int handle, i;
 char *jmeno = "odmoc.dta";
 float f;

 handle = open(jmeno, O_BINARY | O_RDONLY);
 if (handle == -1)
   {
    printf("Chyba!\nSoubor %s nejde cist.\n", jmeno);
    return(handle);
   }

 printf("zadej hodnotu <1..%3d> :", mez - 1);
 scanf("%d", &i);
 while ((i >= 1) && (i < mez))
   {
    if (lseek(handle, ((long) i - 1l) * sizeof(float), SEEK_SET) == -1l)
      {
       printf("Chyba pri nastaveni na %2d. polozku\n", i);
       return(1);
      }

    if (read(handle, &f, sizeof(float)) != sizeof(float))
      {
       printf("Chyba pri cteni %2d. hodnoty\n", i);
       return(1);
      }
    printf("2. odmocnina z %3d je %10.4f\n\n", i, f);
    printf("zadej hodnotu <1..%3d> :", mez - 1);
    scanf("%d", &i);
   } /* while ((i >= 1) && (i < mez)) */
 close(handle);
 return(0);
} /* int main(void) */