 


                 Pro  nalezen souboru COMMAND.COM se pouv  konfiguran
                 promnn COMSPEC, take tento soubor nemus  bt  uloen v
                 aktulnm adresi.

Vracen hodnota  system vrac 0, je-li spn, a -1 nen-li spn.

Penositelnost   system je dostupn v systmech UNIX a je definovna v ANSI
                 C. Je tak kompatibiln s Kerninghanem a Ritchiem.

Viz t          exec..., _fpreset, searchpath, spawn...

Pklad          #include <stdlib.h>
                 #include <stdio.h>

                 int main (void)
                 {
                      printf ("nalezeni command.com a spusteni DOSovskho
                      prikazu\n");
                      system ("dir");
                      return 0;
                 }




---------------------------------------------------------------------------
tan
---------------------------------------------------------------------------


Funkce           Vypot tangens.

Syntax           Reln verze:          Komplexn verze:
                 #include <math.h>      #include <complex.h>
                 double tan(double x);  complex tan(complex x);

Prototyp v       Reln verze:          Komplexn verze:
                 math.h                 complex.h

Poznmky         tan vypot hodnotu  funkce  tangens.  hel  se  zadv v
                 radianech.

                 Oetovn chyb  pro  tuto  funkci  je  mon  modifikovat
                 pomoc funkce matherr.

                 Komplexn funkce tangens je definovna nsledovn:
                      tan(z) = sin(z)/cos(z)

Vracen hodnota  tan vrac tangens x, sin(x)/cos(x).

Penositelnost   Reln  verze  tan  je  dostupn  v  systmech  UNIX a  je
                 definovna v ANSI C. Komplexn verze tto  funkce vyaduje
                 C++, a je pravdpodobn nepenosn.

Viz t          acos, asin, atan, atan2, complex, cos, sin

Pklad          #include <stdio.h>
                 #include <math.h>

                 int main (void)


                                  - 500 - 


                 {
                      double result, x;

                      x = 0.5;
                      result = tan(x);
                      printf ("Tangens %lf je %lf\n", x, result);
                      return 0;
                 }




---------------------------------------------------------------------------
tanh
---------------------------------------------------------------------------


Funkce           Vypot hyperbolick tangens.

Syntax           Reln verze:            Komplexn verze:
                 #include <math.h>        #include <complex.h>
                 double tanh(double c);   complex tanh(complex x);

Prototyp v       Reln verze:            Komplexn verze:
                 math.h                   complex.h

Poznmky         tan   vypot   hodnotu  funkce   hyperbolick   tangens,
                 sinh(x)/cosh(x).

                 Oetovn chyb  pro  tuto  funkci  je  mon  modifikovat
                 pomoc funkce matherr.

                 Komplexn  funkce  hyperbolick   tangens   je  definovna
                 nsledovn:
                      tanh(z) = sinh(z)/cosh(z)

Vracen hodnota  tanh vrac hyperbolick tangens x, sin(x)/cos(x).

Penositelnost   Reln  verze  tanh  je  dostupn  v systmech UNIX  a  je
                 definovna v ANSI C. Komplexn verze tto  funkce vyaduje
                 C++, a je pravdpodobn nepenosn.

Viz t          complex, cos, cosh, sin, sinh, tan

Pklad          #include <stdio.h>
                 #include <math.h>

                 int main (void)
                 {
                      double result, x;

                      x = 0.5;
                      result = tanh(x);
                      printf ("Hyperbolicky tangens %lf je %lf\n", x,
                      result);
                      return 0;
                 }





                                  - 501 - 


---------------------------------------------------------------------------
tell
---------------------------------------------------------------------------


Funkce           Zsk aktuln pozici ukazatele v souboru

Syntax           #include <io.h>
                 long tell (int handle);

Prototyp v       io.h

Poznmky         tell zskv aktuln pozici ukazatele v souboru, kter je
                 piazen k symbolickmu slu handle. Pozice ukazatele se
                 udv potem byt od zatku souboru.

Vracen hodnota  tell  vrac  aktuln pozici ukazatele  v  souboru.  Pokud
                 dojde k  chyb, vrac -1 (long), a globln promnn errno
                 se nastav na:

                      EBADF     chybn slo souboru

Penositelnost   tell je dostupn v systmech UNIX.

Viz t          fgetpos, fseek, ftell, lseek

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

                 int main (void)
                 {
                      int handler;
                      char msg[] = "Ahoj svete";

                      if ((handle = open ("TEST.$$$", O_CREAT | O_TEXT |
                      O_APPEND)) == -1)
                      {
                           perror ("Chyba:");
                           return 1;
                      }
                      write (handle, msg, strlen(msg);
                      printf ("Ukazatel v souboru je na bytu %ld\n",
                      tell(handle));
                      close (handle);
                      return 0;
                 }




---------------------------------------------------------------------------
textattr
---------------------------------------------------------------------------


Funkce           Nastavuje atributy textu.

Syntax           #include <conio.h>


                                  - 502 - 


                 void textattr (int newattr);

Prototyp v       conio.h

Poznmky         textattr vm umouje nastavit v  jedn  funkci  jak barvu
                 poped   tak   barvu   pozad.  (Normln  tyto  atributy
                 nastavujete pomoc textcolor a textbackground).

                 Tato funkce neovlivn znaky, kter jsou v  okamiku jejho
                 voln ji na obrazovce.  Ovlivn  jenom  ty  funkce (jako
                 cprintf), provdjc  pm  vstup  na  obrazovku, kter
                 budou volny a po voln tto funkce.

                 Informace  o  barv  se   do   parametru   newattr  kduj
                 nsledovn:

                      7  6  5  4    3  2  1  0
                      B  b  b  b    f  f  f  f

                 8-mi bitov parametr newattr se nastavuje nsledovn:

                 ffff      je 4-bitov barva poped (0 a 15)
                 bbb       je 3-bitov barva pozad (0 a 7)
                 B         je bit, jeho nastaven zpsobuje blikn

                 Je-li nastaven bit pro blikn, pak zobrazen  znak blik.
                 To mete doshnout tm, e k atributu  pitete konstantu
                 BLINK.

                 Pokud   chcete  pro  vytvoen  atributu  newattr   pout
                 symbolick   konstanty   oznaujc  barvy,   kter   jsou
                 definovny v conio.h, uvdomte  si,  e  pro  barvu pozad
                 plat v tomto ppad nsledujc omezen:

                        Pro pozad si mete vybrat pouze  jednu  z prvnch
                        osmi barev.

                        Abyste zskali sprvnou bitovou pozici  v atributu,
                        muste zvolenou barvu  pozad posunout o tyi bity
                        vlevo.


                 Symbolick                Numerick     Poped nebo
                 konstanta                 hodnota       pozad ?

                 BLACK (ern)                  0        oboje
                 BLUE (modr)                   1        oboje
                 GREEN (zelen)                 2        oboje
                 CYAN (azurov)                 3        oboje
                 RED (erven)                  4        oboje
                 MAGENTA (purpurov)            5        oboje
                 BROWN (hnd)                  6        oboje
                 LIGHTGRAY (svtleed)         7        oboje
                 DARKGRAY (tmavoed)           8        pouze poped
                 LIGHTBLUE (svtlemodr)        9        pouze poped
                 LIGHTGREEN (svtlezelen)      10       pouze poped
                 LIGHTCYAN (svteazurov)       11       pouze poped
                 LIGHTRED (svtleerven)       12       pouze poped
                 LIGHTMAGENTA (svtpurpurov)   13       pouze poped
                 YELLOW (lut)                 14       pouze poped


                                  - 503 - 


                 WHITE (bl)                   15       pouze poped
                 BLINK (blikn)                128      pouze poped
                 ((

Vracen hodnota  dn.

Penositelnost   textadr pracuje  pouze na potach IBM PC a potach s
                 nimi kompatibilnch.

Viz t          gettextinfo,      highvideo,     lowvideo,      normvideo,
                 textbackground, textcolor

Pklad          #include <conio.h>

                 int main(void)
                 {
                      int i;
                      clrscr();
                      for (i=0; i<9; i++)
                      {
                           textattr (i + ((i+1) << 4));
                           cprintf ("Tohle je test\r\n");
                      }
                      return 0;
                 }




---------------------------------------------------------------------------
textbackground
---------------------------------------------------------------------------


Funkce           Zvol novou barvu pozad textu.

Syntax           include <conio.h>
                 void textbackground (int newcolor)

Prototyp v       conio.h

Poznmky         textbackground  zvol  novou  barvu  pozad.  Tato  funkce
                 slou funkcm produkujcm vstup v textovm reimu pmo
                 na obrazovku.  newcolor  vybr  novou  barvu  pozad.  Do
                 newcolor mete uloit hodnotu  0  a  7, nebo nkterou ze
                 symbolickch  konstant,  definovanch  v  conio.h.   Pokud
                 pouijete  symbolick  konstanty,  muste vloit (include)
                 conio.h.

                 Kdy pouijete textbackground,  budou  vechny nsledujc
                 funkce  provdjc pm vstup na obrazovku (jako  nap.
                 cprintf)  pouvat   newcolor.   textbackground  neovlivn
                 znaky, kter jsou  v  okamiku, kdy je tato funkce volna,
                 ji zobrazeny na obrazovce.

                 V nsledujc tabulce  jsou uvedeny symbolick konstanty a
                 seln hodnoty povolench barev:

                 Symbolick               Numerick
                 konstanta                hodnota


                                  - 504 - 


                 BLACK (ern)               0
                 BLUE (modr)                1
                 GREEN (zelen)              2
                 CYAN (azurov)              3
                 RED (erven)               4
                 MAGENTA (purpurov)         5
                 BROWN (hnd)               6
                 LIGHTGRAY (svtleed)      7

Vracen hodnota  dn.

Penositelnost   textbackgound pracuje pouze  na  potach  IBM  PC  a na
                 potach s nimi kompatibilnch.

Viz t          gettextinfo, textattr, textcolor

Pklad          #include <conio.h>

                 int main(void)
                 {
                      int i, j;
                      clrscr();
                      for (i=0; j<9; i++)
                      {
                           for (j=0; j<80; j++)
                                cprinf ("C");
                           cprintf ("\r\n");
                           textcolor (i+1);
                           textbackground (i);
                      }
                      return 0;
                 }




---------------------------------------------------------------------------
textcolor
---------------------------------------------------------------------------


Funkce           Zvol novou barvu znak v textovm reimu.

Syntax           include <conio.h>
                 void textcolor (int newcolor)

Prototyp v       conio.h

Poznmky         textcolor nastav novou barvu  znak.  Tato  funkce slou
                 funkcm  produkujcm  vstup  v  textovm reimu pmo na
                 obrazovku.  newcolor  nastav  novou  barvu   poped.  Do
                 newcolor  mete  nastavit  na  nkterou  z  celoselnch
                 hodnot  uvedench v nsledujc tabulce, nebo nkterou  ze
                 symbolickch  konstant,  definovanch  v  conio.h.   Pokud
                 pouijete  symbolick  konstanty,  muste vloi (include)
                 conio.h.






                                  - 505 - 


                 Kdy pouijete textcolor, budou vechny nsledujc funkce
                 provdjc pm vstup na obrazovku (jako nap. cprintf)
                 pouvat newcolor. textcolor neovlivn znaky, kter jsou v
                 okamiku, kdy je volna, ji zobrazeny na obrazovce.

                 V nsledujc tabulce  jsou uvedeny symbolick konstanty a
                 seln hodnoty povolench barev:

                 Symbolick                    Numerick
                 konstanta                     hodnota

                 BLACK (ern)                    0
                 BLUE (modr)                     1
                 GREEN (zelen)                   2
                 CYAN (azurov)                   3
                 RED (erven)                    4
                 MAGENTA (purpurov)              5
                 BROWN (hnd)                                                                 6
                 LIGHTGRAY (svtleed)           7
                 DARKGRAY (tmavoed)             8
                 LIGHTBLUE (svtlemodr)          9
                 LIGHTGREEN (svtlezelen)        10
                 LIGHTCYAN (svteazurov)         11
                 LIGHTRED (svtleerven)         12
                 LIGHTMAGENTA (svtpurpurov)     13
                 YELLOW (lut)                   14
                 WHITE (bl)                     15
                 BLINK (blikn)                  128

                 Pedefinovanou  konstantu BLINK  (128)  mete  pist  k
                 barv poped, a tm zskte blikajc znaky. Nap.:

                 textcolor(CYAN + BLINK)

                 Upozornn:  Nkter  monitory  nejsou  schopny  zpracovat
                 signly  indikujc odlinou  intenzitu,  kter  slou  k
                 vytven "svtlch" barev (8 a 15). Na tchto monitorech
                 se barvy  s tmito kdy zobraz stejn jako jejich "tmav"
                 ekvivalenty   (0  a  7).  Tak  monochromatick   systmy
                 zobrazuj  tyto  kdy jako rzn  odstny  ed,  zvltn
                 vzorky,  nebo speciln atributy (podtren, tun  psmo,
                 nebo kurziva). To, co v  systm  zobraz  je  zvisl na
                 hardware, kter pouvte.

Vracen hodnota  dn.

Penositelnost   textcolor  pracuje  pouze  na  potach  IBM  PC   a  na
                 potach s nimi kompatibilnch.

Viz t          gettextinfo,  highvideo,  lowvideo,  normvideo,  textattr,
                 textcolor

Pklad          #include <conio.h>

                 int main(void)
                 {
                      int i,;

                      for (i=0; j<15; i++)
                      {


                                  - 506 - 


                           textcolor (i);
                           cprintf("Barva popredi\r\n");
                      }
                      return 0;
                 }




---------------------------------------------------------------------------
textheight
---------------------------------------------------------------------------


Funkce           Vrac vku etzce udanou v bodech.

Syntax           #include <graphics.h>
                                              *
                 int far textheight (char far  textstring);

Prototyp v       graphics.h

Poznmky         Grafick funkce textheight pouije aktuln velikost fontu
                 a  faktor  zvten,  a  zjist  vku  textovho  etzce
                 textstring   v   bodech.   Funkci   je  mon  vyut  pro
                 nastavovn vzdlenost mezi dky, vpoet  vky vezu,
                 stanoven velikosti nadpisu, kter mus vyhovovat rozmrm
                 grafu nebo oknka, atd.

                 Napklad, pouijete-li font  mapovan na 8x8-mi bitech, a
                 nsobn  faktor 1  (nastaven  pomoc  settextstyle)  bude
                 etzec TurboC++ vysok 8 bod.

                 Upozornn:  Pro vpoet  vky  etzce  pouvejte  vdy
                 funkci  textheight,  nepite  pro  takovto  vpoet  svj
                 vlastn   kd.   Pouijete-li   tuto   funkci,    nemuste
                 modifikovat  zdrojov text,  ani  kdy  zmnte  pouvan
                 font.

Vracen hodnota  textheight vrac vku textu v bodech.

Penositelnost   Tato funkce je dostupn pouze v TurboC++. Pracuje pouze na
                 potach  IBM  PC a potach  s  nimi  kompatibilnch,
                 vybavench odpovdajcmi grafickmi adaptery.

Viz t          gettextsettings,    outtext,   outtextxy,    settextstyle,
                 textwidth

Pklad          #include <graphics.h>
                 #include <stdlib.h>
                 #include <stdio.h>
                 #include <conio.h>

                 int main(void)
                 {
                      /* dost o autodetekci  */
                      int gdriver = DETECT, gmode, errorcode;
                      int y = 0;
                      int i;
                      char msg[80];


                                  - 507 - 


                      /* inicializace grafickch a loklnch promnnch  */
                      initgraph (&gdriver, &gmode, "");

                      /* ten vsledk inicializace  */
                      errorcode = graphresult();
                      if (errorcode != grOK)  /* dolo k chyb  */
                      {
                           printf ("Chyba grafiky: %s\n", grapherrormsg
                           (errorcode));
                           printf (Ukoncete stisknutm libovolne
                           klavesy:");
                           getch();
                           exit(1); /* ukonen s kdem chyby  */
                      }

                      /* vykreslen textu na obrazovku  */
                      for (i=1; i<11; i++)
                      {
                           /* volba stylu textu, jeho smru a velikosti  */
                           settextstyle (TRIPLEX_FONT, HORIZ_DIR, i);

                           /* vytvoen etzce se zprvou  */
                           sprintf (msg, "Velikost: %d", i);

                           /* vstup zprvy  */
                           outtext (1, y, msg);

                           /* pechod na dal dek textu  */
                           y += textheight(msg);
                      }
                      /* vynulovn  */
                      getch();
                      closegraph();
                      return 0;
                 }




---------------------------------------------------------------------------
textmode
---------------------------------------------------------------------------


Funkce           Uvede obrazovku do textovho reimu.

Syntax           #include <conio.h>
                 void textmode (int newmode);

Prototyp v       conio.h

Poznmky         Textov  reim  (argument  newmode)  mete  zadat  pomoc
                 symbolickch  konstant  uvedench  ve vtu typ textovch
                 reim  text_modes (definovanch v conio.h>. Pokud  chcete
                 tyto konstanty pout, muste vloit (include) conio.h.

                 Konstanty  udvajc  typy  textovch  reim  text_modes,
                 jejich  seln  hodnoty, a reimy,  kter  popisuj  jsou
                 uvedeny v nsledujc tabulce.



                                  - 508 - 


                 Symbolick   seln   Textov reim
                 konstanta    hodnota

                 LASTMODE       -1      Pedchzejc textov reim.
                 BW40            0      ernobl, 40 sloupc
                 C40             1      Barevn, 40 sloupc
                 BW80            2      ernobl, 80 sloupc
                 C80             3      Barevn, 80 sloupc
                 MONO            7      Monochromatick, 80 sloupc
                 C4350          64      EGA 43 dk a VGA 50 dk

                 Kdy  zavolte  textmode,  aktuln  oknko se pestav na
                 celou obrazovku a aktuln atributy  textu  se  nastav na
                 normln, t.j. odpovdajc voln normvideo.

                 Pokud   v  textmode  specifikujete  LASTMODE,  obnov   se
                 posledn zvolen textov reim.

                 textmode je mon pout jen tehdy, pracuje-li obrazovka v
                 textovm reimu (pro zmnu pouvanho  textovho reimu).
                 Pracuje-li   obrazovka   v  grafickm   reimu,   pouijte
                 restorecrtmode, namsto doasnho  odskoen  do textovho
                 reimu.

Vracen hodnota  dn.

Penositelnost   textmode pracuje pouze na potach IBM PC a potach s
                 nimi  kompatibilnch. Odpovdajc  funkce  existuje  i  v
                 Turbo Pascalu.

Viz t          gettextinfo, window

Pklad          #include <conio.h>

                 int main(void)
                 {
                      textmode (BW40)
                      cprintf ("ABC");
                      getch();

                      textmode (C40)
                      cprintf ("ABC");
                      getch();

                      textmode (BW80)
                      cprintf ("ABC");
                      getch();

                      textmode (C80)
                      cprintf ("ABC");
                      getch();

                      textmode (MONO)
                      cprintf ("ABC");
                      getch();

                      return 0;
                 }




                                  - 509 - 


---------------------------------------------------------------------------
textwidth
---------------------------------------------------------------------------


Funkce           Vrac dlku etzce udanou v bodech.

Syntax           #include <graphics.h>
                                             *
                 int far textwidth (char far  textstring);

Prototyp v       graphics.h

Poznmky         Grafick funkce textwidth  vezme aktuln velikost fontu a
                 faktor   zvten,   a   zjist  dlku  textovho  etzce
                 textstring   v   bodech.   Funkci   je  mon  vyut  pro
                 nastavovn  ky  vezu, stanoven  velikosti  nadpisu,
                 kter mus vyhovovat rozmrm grafu nebo oknka, atd.

                 Upozornn:  Pro vpoet  dlky  etzce  pouvejte  vdy
                 funkci  textwidth,  nepite  pro  takovto   vpoet  svj
                 vlastn   kd.   Pouijete-li   tuto   funkci,    nemuste
                 modifikovat  zdrojov text,  ani  kdy  zmnte  pouvan
                 font.

Vracen hodnota  textwidth vrac dlku textu v bodech.

Penositelnost   Tato funkce je dostupn pouze v TurboC++. Pracuje pouze na
                 potach  IBM  PC a potach  s  nimi  kompatibilnch,
                 vybavench odpovdajcmi grafickmi adaptery.

Viz t          gettextsettings,    outtext,   outtextxy,    settextstyle,
                 textheight

Pklad          #include <graphics.h>
                 #include <stdlib.h>
                 #include <stdio.h>
                 #include <conio.h>

                 int main(void)
                 {
                      /* dost o autodetekci  */
                      int gdriver = DETECT, gmode, errorcode;
                      int x = 0, y = 0;
                      int i;
                      char msg[80];

                      /* inicializace grafickch a loklnch promnnch  */
                      initgraph (&gdriver, &gmode, "");

                      /* ten vsledk inicializace  */
                      errorcode = graphresult();
                      if (errorcode != grOK)  /* dolo k chyb  */
                      {
                           printf ("Chyba grafiky: %s\n", grapherrormsg
                           (errorcode));
                           printf (Ukoncete stisknutm libovolne
                           klavesy:");
                           getch();
                           exit(1); /* ukonen s kdem chyby  */


                                  - 510 - 


                      }
                      y = getmaxy() / 2;
                      settextjustify (LEFT_TEXT, CENTER_TEXT);
                      for i=1; i<11; i++)
                      {
                           /* volba stylu textu, jeho smru a velikosti  */
                           settextstyle (TRIPLEX_FONT, HORIZ_DIR, i);

                           /* vytvoen etzce se zprvou  */
                           sprintf (msg, "Velikost: %d", i);

                           /* vstup zprvy  */
                           outtext (1, y, msg);

                           /* pechod na dal dek textu  */
                           y += textwidth(msg);
                      }
                      /* vynulovn  */
                      getch();
                      closegraph();
                      return 0;
                 }




---------------------------------------------------------------------------
time
---------------------------------------------------------------------------


Funkce           Zjist as.

Syntax           #include <time .h>
                                    *
                 time_t time(time_t  timer);

Prototyp v       time.h

Poznmky         time udv v  sekundch  as,  kter  uplynul  od 00:00:00
                 1.ledna 1970 GMT (svtovho asu), a  ukld  tuto hodnotu
                 na adresu, na kterou  ukazuje  timer,  za  pedpokladu, e
                 timer nen nulov ukazatel.

Vracen hodnota  time vrac as v sekundch, viz popis ve.

Penositelnost   time je dostupn v systmech UNIX a je  definovna  v ANSI
                 C.

Viz t          acstime,   ctime,   difftime,  ftime,   gettime,   gmtime,
                 localtime, settime, stime, tzset

Pklad          #include <time.h>
                 #include <stdio.h>
                 #include <dos.h>

                 int main(void)
                 {
                      time_t t;
                      t = time(NULL);


                                  - 511 - 


                      printf ("Od 1.ledna 1970, uplynulo %ld sekund", t);
                      return 0;
                 }




---------------------------------------------------------------------------
tmpfile
---------------------------------------------------------------------------


Funkce           Oteve v binrnm reimu doasn soubor.

Syntax           #include <stdio.h>
                      *
                 FILE  tmpfile(void);

Prototyp v       stdio.h

Poznmky         tmpfile vytvo doasn binrn soubor  a  oteve  jej pro
                 aktualizaci  (w+b). Kdy tento soubor uzavete, nebo  kdy
                 ukonte program, soubor se automaticky zru.

Vracen hodnota  tmpfile   vrac  ukazatel   na   stream   tohoto   doasn
                 vytvoenho  souboru.  Pokud  soubor nelze vytvoit, vrac
                 tmpfile nulu.

Penositelnost   tmpfile je  dostupn v systmech UNIX a je definovna ANSI
                 C.

Viz t          fopen, tmpnam

Pklad          #include <stdio,h>
                 #include <process.h>

                 int main(void)
                 {
                           *
                      FILE  tempf;
                      tempfp = tmpfile();
                      if (tempfp)
                           printf ("Vytvoren docasny soubor\n");
                      else
                      {
                           printf ("Docasny soubor nelze vytvorit\n");
                           exit(1);
                      }
                      return 0;
                 }




---------------------------------------------------------------------------
tmpnam
---------------------------------------------------------------------------


Funkce           Vytvo jedinen nzev souboru.


                                  - 512 - 


Syntax           #include <stdio.h>
                                   *
                 char *tmpnam(char  s);

Prototyp v       stdio.h

Poznmky         tmpnam  vytvo jedinen (t.j. dosud neexistujc)  nzev
                 souboru,   kter  lze  bez  problm  pout  jako   nzev
                 doasnho   souboru.   Pokad,  kdy   zavolte   tmpnam,
                 vygeneruje  jin etzec. Pitom tuto funkci mete  volat
                 TMP_MAX krt. TMP_MAX je definovno v stdio.h jako 65535.

                 Parametr s, pedvan do tmpnam me bt bu NULL, nebo to
                 me  bt  ukazatel  na  pole, obsahujc nejmn L_tmpnam
                 znak. L_tmpnam je definovno  v  stdio.h.  Je-li  s NULL,
                 ponech  tmpnam vygenerovan  nzev  doasnho  souboru  v
                 internm statickm objektu, a v tom ppad vrac ukazatel
                 na  tento  objekt.  Pokud  s  nen  nulov,  ulo  tmpnam
                 vsledek sv innosti  do  pole, na kter ukazuje, a kter
                 mus bt nejmn L_tmpnam znak, a vrac s.

                 Upozornn: Pokud pomoc tmpnam vytvote  doasn soubor,
                 muste se sami postarat,  aby  se  poslze  vymazal (nap.
                 pomoc voln  remove).  Tento  soubor  se  toti  nezru
                 automaticky  (na  rozdl  od  tmpfile, kter nzev souboru
                 vymazv).

Vracen hodnota  Je-li s nula, vrac tmpnam  ukazatel  na  intern statick
                 objekt. Jinak tmpnam vrac s.

Penositelnost   tmpnam je dostupn v systmech UNIX a je definovna v ANSI
                 C.

Viz t          tmpfile

Pklad          #include <stdio.h>

                 int main(void)
                 {
                      char name[13]

                      tmpnam(name);
                      printf("Nazev docasneho souboru: %s\n", name);
                      return 0;
                 }




---------------------------------------------------------------------------
toascii
---------------------------------------------------------------------------


Funkce           Pevede znaky na ASCII formt.

Syntax           #include <ctype.h>
                 int toascii(int c);

Prototyp v       ctype.h


                                  - 513 - 


Poznmky         toascii je makro, kter pevede celoselnou hodnotu  c na
                 ASCII znak, tak, e vynuluje vechny bity krom nejnich
                 7-mi bit; tak vznikne hodnota z intervalu od 0 do 127.

Vracen hodnota  toascii vrac pevedenou hodnotu c.

Penositelnost   toascii je dostupn v systmech UNIX.

Pklad                         #include <stdio.h>
                 #include <ctype.h>

                 int main(void)
                 {
                      int number, result;
                      number = 51;
                      result = toascii(number);
                      printf("%d %d\n", number, result);
                      return 0;
                 }




---------------------------------------------------------------------------
_tolower
---------------------------------------------------------------------------


Funkce           Pevd velk psmena na mal.

Syntax           #include <ctype.h>
                 int _tolower(int(ch);

Prototyp v       ctype.h

Poznmky         _tolower  je  makro,  kter  provd  stejn  pevod  jako
                 tolower, s tm rozdlem, e _tolower lze pout jen tehdy,
                 kdy jste si jisti, e ch je psmeno velk  abecedy  (A  -
                 Z). Abyste mohli pout _tolower, muste vloit ctype.h.

Vracen hodnota  _tolower vrac peveden ch, pokud  se  jednalo  o psmeno
                 velk abecedy. Jinak je vsledek nedefinovan.

Penositelnost   _tolower je dostupn v systmech UNIX.

Pklad                         #include <string.h>
                 #include <stdio.h>
                 #include <ctype.h>

                 int main(void)
                 {
                      int length, i;
                      char *string = "TOTO JE RETEZEC";

                 /*
                      Mli byste si zkontrolovat kad znak v etzci,
                      abyste mli jistotu, e to jsou skuten velk
                      psmena. Jinak bude vsledek nedefinovateln */

                      length = strlen (string);


                                  - 514 - 


                      for (i = 0; i < length; i++)
                      {
                           string[i] = _tolower (string[i]);
                      }
                      printf ("%s\n"string);
                      return 0;
                 }




---------------------------------------------------------------------------
tolower
---------------------------------------------------------------------------


Funkce           Pevd velk psmena na mal.

Syntax           #include <type.h>
                 int tolower (int ch)

Prototyp v       ctype.h

Poznmky         tolower je  funkce, kter pevd cel slo ch (v rozsahu
                 od EOF  do 255) na jemu odpovdajc psmeno mal abecedy.
                 (a a z; pokud se jednalo o psmeno velk abecedy A a Z).
                 Vechny ostatn znaky ponechv beze zmny.

Vracen hodnota  tolower vrac peveden ch,  pokud  se  jednalo  o psmeno
                 velk abecedy; vechny ostatn znaky vrac beze zmny.

Penositelnost   tolower je dostupn v systmech  UNIX  a  je  definovna v
                 ANSI C. Je tak kompatibiln s Kernighanem a Ritchiem.

Pklad                         #include <string.h>
                 #include <stdio.h>
                 #include <ctype.h>

                 int main(void)
                 {
                      int length, i;
                           *
                      char  string = "TOTO JE RETEZEC.";

                      length = strlen (string);
                      for (i = 0; i < length; i++)
                      {
                           string[i] = tolower (string[i]);
                      }
                      printf ("%s\n"string);
                      return 0;
                 }










                                  - 515 - 


---------------------------------------------------------------------------
_toupper
---------------------------------------------------------------------------


Funkce           Pevd mal psmena na velk.

Syntax           #include <ctype.h>
                 int _toupper(int(ch);

Prototyp v       ctype.h

Poznmky         _toupper  je  makro,  kter  provd  stejn  pevod  jako
                 toupper, s tm rozdlem, e _toupper lze pout jen tehdy,
                 kdy jste si jisti, e ch je psmeno mal abecedy (a - z).
                 Abyste mohli pout _toupper, muste vloit ctype.h.

Vracen hodnota  _toupper vrac peveden ch, pokud  se  jednalo  o psmeno
                 mal abecedy. Jinak je vsledek nedefinovan.

Penositelnost   _toupper je dostupn v systmech UNIX.

Pklad                         #include <string.h>
                 #include <stdio.h>
                 #include <ctype.h>

                 int main(void)
                 {
                      int length, i;
                      char *string = "toto je retezec";

                 /*
                      Mli byste si zkontrolovat kad znak v etzci,
                      abyste mli jistotu, e to jsou skuten mal
                      psmena. Jinak bude vsledek nedefinovateln */

                      length = strlen (string);
                      for (i = 0; i < length; i++)
                      {
                           string[i] = _toupper (string[i]);
                      }
                      printf ("%s\n"string);
                      return 0;
                 }




---------------------------------------------------------------------------
toupper
---------------------------------------------------------------------------


Funkce           Pevd mal psmena na velk.

Syntax           #include <type.h>
                 int toupper (int ch)

Prototyp v       ctype.h



                                  - 516 - 


Poznmky         toupper je  funkce, kter pevd cel slo ch (v rozsahu
                 od EOF do 255) na jemu odpovdajc psmeno velk abecedy.
                 (A a Z, pokud se jednalo o psmeno mal abecedy a  a z).
                 Vechny ostatn znaky ponechv beze zmny.

Vracen hodnota  toupper vrac peveden ch,  pokud  se  jednalo  o psmeno
                 velk abecedy; vechny ostatn znaky vrac beze zmny.

Penositelnost   toupper je dostupn v systmech  UNIX  a  je  definovna v
                 ANSI C. Je tak kompatibiln s Kernighanem a Ritchiem.

Pklad                         #include <string.h>
                 #include <stdio.h>
                 #include <ctype.h>

                 int main(void)
                 {
                      int length, i;
                           *
                      char  string = "toto je retezec";

                      length = strlen (string);
                      for (i = 0; i < length; i++)
                      {
                           string[i] = toupper (string[i]);
                      }
                      printf ("%s\n"string);
                      return 0;
                 }




---------------------------------------------------------------------------
tzset
---------------------------------------------------------------------------


Funkce           Nastavuje hodnoty globlnch promnnch daylight, timezone
                 a tzname.

Syntax           #include <time.h>
                 void (tzset(void)

Prototyp v       time.h

Poznmky         tzset  nastavuje  hodnoty  globlnch promnnch daylight,
                 timezone  a tzname, na zklad konfiguran prommnn  TZ.
                 Knihovn  funkce ftime a localtime tyto globln  promnn
                 pouvaj   ke   korekci   Greenwichskho  svtovho  asu
                 (Greenwich mean time -  GMT),  podle  pslunho mstnho
                 asovho psma. Formt etzcov konfiguran  promnn TZ
                 je nsledujc:

                 TZ = zzz [+/-]d/d][lll]

                 kde:





                                  - 517 - 


                 zzz je  etzec o dlce t znak, kter oznauje aktuln
                 asov  psmo.  Mus obsahovat vechny  ti  znaky.  Nap.
                 etzec "PST" slou pro oznaen pacifickho standardnho
                 asu (Pacific Standard Time).

                 [+/-]d[d] je pole, obsahujc slo s nepovinnm znamnkem
                 a  s  jednou  nebo  vce  slicemi.  Toto  slo udv  v
                 hodinch rozdl mezi mstnm asovm psmem a  GMT. Kladn
                 sla oznauj  psma na zpad od GMT. Zporn sla psma
                 na  vchod od GMT. Nap. 5 = EST, +8 = PST a -1 =  stedn
                 Evropa.  Toto  slo   se  pouv  pi  vpotu  globln
                 promnn  timezone.  timezone  udv  rozdl  mezi  GMT  a
                 mstnm asovm psmem v sekundch.

                 lll je nepovinn tznakov pole, kter oznauje letn as
                 pouvan  v  mstnm  asovm  psmu. Nap. mete pout
                 etzec "PDT"  pro  oznaen  letnho  asu  v  Pacifickm
                 psmu.  Pokud  je  toto  pole  uvedeno,  bude  do globln
                 promnn  daylight  dosazena  nenulov hodnota. Pokud toto
                 pole chyb, bude daylight nulov.

                 Pokud etzecov konfiguran promnn TZ neexistuje, nebo
                 nem odpovdajc tvar, dosad se implicitn hodnota  TZ =
                 "EST5EDT", a podle  n  se  dosad  hodnoty  do globlnch
                 promnnch daylight, timezone, tzname.

                 Globln promnn tzname]0] ukazuje na tznakov etzec,
                 kter   obsahuje  nzev  asovho  psma  z   konfiguran
                 promnn  TZ.  tzname[1]  ukazuje  na  tznakov  etzec
                 obsahujc  hodnotou letnho asu z konfiguran  promnn
                 TZ. Pokud  nen  letn  as  zadn,  ukazuje  tzname[1] na
                 nulov etzec.

Vracen hodnota  dn.

Penositelnost   tzset je dostupn v systmech UNIX a XENIX.

Viz t          asctime, ctime, ftime, gmtime, localtime, stime, time

Pklad          #include <time.h>
                 #include <stlib.h>
                 #include <stdio.h>

                 int main(void)
                 {
                      time_t tdt;
                      putenv ("TZ = PST8PDT");
                      tzset();
                      time(&td);
                      printf ("Cas = %s\n", asctime(localtime(&td)));
                      return 0;
                 }










                                  - 518 - 


---------------------------------------------------------------------------
ultoa
---------------------------------------------------------------------------


Funkce           Pevd slo typu unsigned long na etzec.

Syntax           #include <stdlib.h>
                       *                                      *
                 char   ultoa  (unsigned  ling  value,  char   string,  int
                 radix);

Prototyp v       stdlib.h

Poznmky         ultoa pevede hodnotu value na nulou  zakonen  etzec a
                 vsledek ulo do  string.  Hodnota  value  mus  bt typu
                 unsigned long.

                 radix specifikuje zklad  (soustavy), kter se pouv pi
                 pevdn hodnoty value; mus bt z intervalu od  2  do 36
                 vetn. ultoa neprovd kontrolu na peplnn, a  pokud je
                 value zporn a radix roven 10, nezpracuje znamnko minus.

                 Upozornn: Pam؟ alokovan pro  etzec  string  mus bt
                 dost velk, aby se do  n  vracen  etzec  veel, vetn
                 ukonujcho nulovho znaku (\0). ultoa me vracet  a 33
                 byt.

Vracen hodnota  ultoa vrac etzec string.

Penositelnost   ultoa je dostupn pouze v DOSu.

Viz t          itoa, ltoa

Pklad          #include <stdlib.h>
                 #include <stdio.h>

                 int main(void)
                 {
                      unsigned long lnumber = 3123456789L;
                      char string [25];
                      ultoa (lnumber, string, 10);
                      printf ("retezec = %s unsigned long = %lu\n", string,
                      lnumber);
                      return 0;
                 }




---------------------------------------------------------------------------
ungetc
---------------------------------------------------------------------------


Funkce           Vrt znak zpt na vstupn stream.

Syntax           #include <stdio.h>
                                         *
                 int ungetc (int c, FILE  stream);


                                  - 519 - 


Prototyp v       stdio.h

Poznmky         ungetc  vrt  znak  c  zpt  do  pojmenovanho  vstupnho
                 streamu stream, kter mus bt oteven  pro  ten. Tento
                 znak bude vrcen pi nsledujcm voln getc nebo fread z
                 tohoto streamu. Jeden  znak  je takto mon vrtit v kad
                 situaci. Dal voln ungetc,  pokud  mezi  tm neprobhlo
                 getc, zpsob, e bude  vrcen  znak  "zapomenut". Voln
                 fflush, fseek, fsetpos nebo rewind vymae celou pam؟, i s
                 ppadnm vrcenm znakem.

Vracen hodnota  Je-li spn, vrac ungetc znak, kter vrc  do streamu;
                 pokud operace neuspje, vrac EOF.

Penositelnost   ungetc je dostupn v systmech UNIX a je definovna v ANSI
                 C.

Viz t          fgetc, getc, getchar

Pklad          #include <stdio.h>
                 #include <ctype.h>

                 int main(void)
                 {
                      int i = 0;
                      char ch;
                      puts ("Vstup cisla integer, za nim nasleduje znak:");

                      /* ten znaku, dokud nen neseln nebo EOF  */
                      while (ch = getchar() != EOF && isdigit (ch));
                           i = 0 * i +ch - 48;  /* pevod ASCII na integer
                      hodnotu  */

                      /* pokud peten neseln znak, vra jej do
                      vstupn vyrovnvac pamti  */
                      if (ch != EOF)
                           ungetc (ch, stdin);
                           printf ("i = %d, nsledujici znak ve vyrovnvac
                           pamti = %c\n", i, getchar());
                      return 0;
                 }




---------------------------------------------------------------------------
ungetch
---------------------------------------------------------------------------


Funkce           Vrt znak zpt do vyrovnvac pamti klvesnice.

Syntax           #include <conio.h>
                 int ungetch (int ch);

Prototyp v       conio.h

Poznmky         ungetch vrt znak ch zpt  do  buferu  vyrovnvac pamti
                 klvesnice,  take   nsledujc   znak,   kter   bude  z
                 klvesnice  peten,  bude ch. Pokud  se  pokuste  funkci


                                  - 520 - 


                 ungetch volat vcekrt, ani byste po  n  provedli ten,
                 bude toto voln nespn.

Vracen hodnota  Pokud je spn, vrac ungetch znak  ch.  Je-li nespn
                 vrac EOF.

Penositelnost   ungetch je dostupn v systmech UNIX.

Viz t          getch, getche

Pklad          #include <stdio.h>
                 #include <ctype.h>
                 #include <conio.h>

                 int main(void)
                 {
                      int i = 0;
                      char ch;

                      puts ("Vstup cisla integer, za nim nasleduje znak:");

                      /* ten znaku, dokud nen neseln nebo EOF  */
                      while (ch = getchar() != EOF && isdigit (ch));
                           i = 0 * i +ch - 48;  /* pevod ASCII na integer
                           hodnotu  */

                      /* pokud peten neseln znak, vra jej do
                      vstupn vyrovnavac pamti  */
                      if (ch != EOF)
                           ungetch (ch);
                           printf ("\n\ni = %d, nasledujici znak ve
                           vyrovnavaci pameti = %c\n", i, getch());
                      return 0;
                 }




---------------------------------------------------------------------------
unixtodos
---------------------------------------------------------------------------


Funkce           Pevede datum a as z formtu UNIX do formtu DOS.

Syntax           #include <dos.h>
                                                           *
                 void unixtodos (long time,  struct  date   d,  struct time
                 *
                  t);

Prototyp v       dos.h

Poznmky         unixtodos pevede as  ve  formtu UNIX, uloen v time na
                 formt  pro  DOS,  a zapln struktury date a time na kter
                 ukazuj *d a *t.

Vracen hodnota  dn.

Penositelnost   unixtodos je dostupn pouze v DOSu.


                                  - 521 - 


Viz t          dostounix

Pklad          #include <stdio.h>
                 #include <dos.h>
                      *
                 char  month[] = ("---", "Jan", "Feb", "Mar", "Apr", "May",
                 "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");

                 #define SECONDS_PER_DAY 84600L /* poet sekund za den  */

                 struct date dt;
                 struct time tm;

                 int main(void)
                 {
                      unsigned long val;
                      /* zskn dnenho data a asu  */
                      getdate (&dt);
                      gettime (&tm);
                      printf("dneska je %d %s %d\n", dt.da_day,
                      month[dt.da_mon], dt.da_year);

                      /* peveden data a asu na unix formt (poet sekund
                      od 1. ledna 1970     */
                      val = dostounix (&dt, &tm);
                      /* odeten 42 dn vyjdench v sekundch  */
                      val -= (SECONDS_PER_DAY * 42)

                      /* peveden zpt na dos as a datum  */
                      unixtodos (val, &dt, &tm);
                      printf ("pred 42 dny bylo %d %s %d\n",
                      dt.da_day, month[dt.da_mon], dt.da_year);
                      return 0;
                 }




---------------------------------------------------------------------------
unlink
---------------------------------------------------------------------------


Funkce           Vymae soubor.

Syntax           #include <io.h>
                                        *
                 int unlink (const char  filename);

Prototyp v       dos.h, io.h, stdio.h

Poznmky         unlink   vymae   (zru)  soubor   specifikovan   nzvem
                 filename.  filename  me  obsahovat  jakoukoli   diskovou
                 jednotku, cestu a nzev souboru, se  ktermi  DOS pracuje.
                 Nen povoleno puit pseudoznak vytvejcch masku.

                 Pomoc tto funkce nelze vymazat soubory,  ze  kterch lze
                 pouze st  (read  only).  Chcete-li  vymazat  soubory  ze
                 kterch  je  povoleno  pouze  ten  (read  only),  muste



                                  - 522 - 


                 nejprve pout chmod nebo  _chmod,  a  pomoc  nich zmnit
                 atribut read only.

                 Upozornn:  Je-li soubor oteven, nejprve jej zavete  a
                 potom teprve provete unlink.

Vracen hodnota  Je-li  spn  dokonena,  vrac  unlink nulu. Dojde-li k
                 chyb, vrac -1 a  globln  promnn  errno se nastav na
                 jednu z nsledujcch hodnot:

                      ENOENT    Cesta nebo soubor nenalezen.
                      EACCES    Pstup nen pvolen.

Penositelnost   unlink je dostupn v systmech UNIX.

Viz t          chmod, remove

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

                 int main(void)
                 {
                           *
                      FILE  fp = fopen ("junk.jnk","w");
                      int status;
                      fprintf (fp, "junk");

                      status = access ("junk.jnk", 0);
                      if (status == 0);
                           printf ("Soubor existuje\n");
                      else
                           printf ("Soubor neexistuje\n");

                      fclose (fp);
                      unlink ("junk.jnk");
                      status = access("junk.jnk",0);
                      if (status == 0)
                           printf ("Soubor existuje\n");
                      else
                           printf ("Soubor neexistuje\n");
                      return 0;
                 }




---------------------------------------------------------------------------
unlock
---------------------------------------------------------------------------


Funkce           Uvoluje uzamen, souvisejc se sdlenm soubor.

Syntax           #include <io.h>
                 int unlock (int handle, long offset, long lenght);

Prototyp v       io.h

Poznmky         unlock zajiuje propojen s mechanismem  sdlen soubor,
                 pracujcm pod DOS 3.x.


                                  - 523 - 


                 unlock  uvoln  uzamen,  kter  se   uskutenilo  pomoc
                 pedchzejcho voln lock. Aby nedolo k chyb, mus bt
                 uvolnna  vechna uzamen, dve ne bude soubor  uzaven
                 (close). Tak ped ukonenm  programu  mus  bt uvolnna
                 vechna uzamen.

Vracen hodnota  Je-li spn, vrac unlock nulu, jinak vrac -1.

Penositelnost   unlock je dostupn pouze v  DOSu  3.x.  Star  verze DOSu
                 tuto funkci nepodporuj.

Viz t          lock, sopen

Pklad          #include <io.h>
                 #include <fcntl.h>
                 #include <sys\stat.h>
                 #include <process.h>
                 #include <share.h>
                 #include <stdio.h>

                 int main(void)
                 {
                      int handle, status;
                 long length;

                      handle = sopen ("c:\\autoexec.bat", O_RDONLY,
                      SH_DENYNO, S_IREAD);

                      if (!handle)
                      {
                           print ("sopen neuspela\n");
                           exit(1);
                      }
                      length = filelength (handle);
                      status = lock (handle,OL,length/2);

                      if (status == 0)
                           printf ("lock uspela\n");
                      else
                           printf ("lock neuspela\n");

                      status = unlock (handle,OL,length/2);

                      if (status == 0)
                           printf ("unlock uspela\n");
                      else
                           printf ("unlock neuspela\n");

                      close (handle);
                      return(0);
                 }











                                  - 524 - 


---------------------------------------------------------------------------
va_arg, va_end, va_start
---------------------------------------------------------------------------


Funkce           Implementuje promnn seznam argument.

Syntax           #include <stdarg.h>
                 void va_start (va_list ap, lastfix);
                 type va_arg (va_list ap, type);
                 void va_end (va_list ap);

Prototyp v       stdarg.h

Poznmky         Nkter funkce jazyka C, jako nap.  vfprintf,  a vprintf,
                 pouvaj krom pevnch (znmch) parametr  tak promnn
                 seznam   argument.   Makra   va_arg,  va_end  a  va_start
                 pedstavuj   penositelnou   monost   pstupu  k  tmto
                 seznamm argument. Slou k tomu, aby se s tmto seznamem
                 dalo pracovat, i kdy volan  funkce  nezn  poet  a typy
                 pedvanch argument.

                 V prototypovm souboru stdarg.h  je  deklarovn  jeden typ
                 (va_list) a ti makra (va_start, va_arg, a va_end).

                 va_list: Toto  pole  obsahuje  informace,  kter potebuj
                 va_arg  a va_end. Jestlie volan funkce pouv  promnn
                 seznam argument, deklaruje promnnou ap, typu va_list.

                 va_start: Tato rutina (implementovan jako  makro) nastav
                 ap, aby ukazoval  na  prvn  promnn  argument,  kter se
                 funkci pedv. Makro va_start mus bt pouita dve, ne
                 poprv zavolte va_arg nebo va_end.

                 va_start m dva parametry: ap a lastfix. (ap  je  popsn u
                 va_list  v  pedchzejcm  odstavci;  lastfix   je  nzev
                 poslednho  pevnho parametru,  kter  byl  pedn  volan
                 funkci).

                 va_arg: Tato rutina (tak  implementovan  jako  makro) se
                 rozvine  ve vraz, kter je stejnho  typu  a  m  stejnou
                 hodnotu,  jako  nsledujc  argument, kter bude pedvn
                 (jeden  z  promnnch argument). Promnn  ap  pro  makro
                 va_arg mus bt toton s ap inicializovanou ve va_start.

                 Upozornn: vzhledem  k  implicitn  podpoe  nemete pro
                 makro va_arg  pouvat  typy  char,  unsigned  char,  nebo
                 float.

                 Pi prvnm pouit vrac va_arg prvn argument ze seznamu.
                 Pi  kadm  nsledujcm  voln va_arg vrac nsledujc
                 argument  ze  seznamu.  Provd  se  to  tak,  e  nejprve
                 dereferencuje ap,  a  potom  jej  zvt  aby  ukazoval na
                 nsledujc  argument.  va_arg pouv type  k  tomu,  aby
                 mohla  provst  dereferenci  a zjistit zatek nsledujc
                 poloky. Pi kadm vyvoln va_arg se ap  modifikuje, aby
                 ukazovala na nsledujc argument v seznamu.





                                  - 525 - 


                 va_end:  Tato makro pomh volan funkci, aby  uskutenila
                 normln nvrat. va_end modifikuje ap takovm zpsobem, e
                 ji  nen  mon  pout,  dokud  neprovedete  nov  voln
                 va_start. Kdy va_arg pete vechny argumenty, je poteba
                 zavolat va_end; jinak se me  v  program  zat chovn
                 nestandardn.

Vracen hodnota  va_start  a va_end nevracej dnou hodnotu; va_arg  vrac
                 aktuln argument, na kter ukazuje ap.

Penositelnost   va_arg, va_start a va_end jsou dostupn v systmech UNIX.

Viz t          v...printf, v...scanf

Pklad          #include <stdio.h>
                 #include <stdarg.h>

                 /* vypote souet seznamu zakonenho nulou  */

                 void sum (char *msg, ...)
                 {
                      int total = 0;
                      va_list ap;
                      int arg;

                      va_start (ap, msg);
                      while ((arg = va_arg (ap, int)) != 0)
                      {
                           total + arg;
                      }
                      printf (msg, total);
                 }
                 int main(void)
                 {
                      sum ("Soucet 1 + 2 + 3 + 4 je %d\n", 1,2,3,4,0);
                 }

Vstup z programu

                 Soucet 1 + 2 + 3 + 4 je 10

Pklad 2        #include <stdio.h>
                 #include <stdarg.h>
                                  *
                 void error (char  format, ....)
                 {
                      va_list argptr;
                      printf ("error: /);
                      va_start (argptr, format);
                      vprintf (format, argptr);
                      va_end (argptr);
                 }
                 int main (void)
                 {
                      int value = -1;
                      error ("toto je chybove hlaseni\n");
                      error ("narazili jsme na neplatnou hodnotu %d\n",
                      value);
                 }



                                  - 526 - 


Vstup z programu

error: toto je chybove hlaseni
error: narazili jsme na neplatnou hodnotu -1




---------------------------------------------------------------------------
vfprintf
---------------------------------------------------------------------------


Funkce           Vype formtovan vstup na stream.

Syntax           #include <stdio.h>
                                    *                      *
                 int vfprintf (FILE  stream,  const  char   format, va_list
                 arglist);

Prototyp v       stdio.h

Poznmky         Funkce v...printf pedstavuj vlastn alternativn vstupn
                 body pro funkce ...printf. Pracuj stejn jako jako jejich
                 protjky  ...printf,  ale  msto  seznamu argument se do
                 nich pedv ukazatel na seznam argument.

                 Podrobnosti tkajc se formtovch specifiktor  najdete
                 u popisu printf.
                 vfprintf pracuje s ukazatelem na mnoinu argument,  a pro
                 kad argument pouije formtov specifiktor,  uloen ve
                 formtovm   etzci,  na  nj  ukazuje  format.   Vstup
                 formtovch dat je smrovm na stream.  Poet  argument a
                 formtovch specifiktor mus bt shodn.

Vracen hodnota  vprintf vrac poet byt, kter byly smovny  na vstup.
                 Dojde-li k chyb, vprintf vrac EOF.

Penositelnost   vprintf  je  dostupn  v UNIX System V a je kompatibiln s
                 ANSI C.

Viz t          printf, va_arg, va_end, va_start

Pklad          #include <stdio.h>
                 #include <stdlib.h>
                      *
                 FILE  fp
                                *
                 int vfpf (char  fmt, ...)
                 {
                      va_list argptr;
                      int cnt;

                      va_start (argptr, format);
                      cnt = vprintf (fp, fmt, argptr);
                      va_end (argptr);
                      return (cnt);
                 }
                 int main(void)
                 {


                                  - 527 - 


                      int inumber = 30;
                      float fnumber = 90.0;
                      char string [4] = "abc";

                      fp = tmpfile();
                      if (fp == NULL)
                      {
                           perror ("tmpfile() call");
                           exit(1);
                      }
                      vfpf ("%d %f %s, inumber, fnumber, string);
                      rewind (fp);
                      fscanf (fp, "%d %f %s" &inumber, &fnumber, string);
                      printf ("%d %f %s\n", inumber, fnumber, string);
                      fclose(fp);
                      return 0;
                 }




---------------------------------------------------------------------------
vfscanf
---------------------------------------------------------------------------


Funkce           Sejme formtovan vstup ze streamu.

Syntax           #include <stdio.h>
                                      *                    *
                 int  vfscanf  (FILE   stream,  const char  format, va_list
                 arglist);

Prototyp v       stdio.h

Poznmky         Funkce v...scanf pedstavuj vlastn alternativn  vstupn
                 body pro funkce ...scanf. Pracuj stejn jako  jako jejich
                 protjky ...scanf, ale pedv  se  do  nich  ukazatel na
                 seznam argument, namsto seznamu argument.

                 Podrobnosti tkajc se formtovch specifiktor  najdete
                 u popisu scanf.
                 vfscanf snm, po jednom znaku, ze streamu  adu vstupnch
                 poloek.   Potom   kadou   poloku   naformtuje    podle
                 formtovho   specifiktoru,   kter   j  byl  pedn  ve
                 formtovm  etzci  na  kter  ukazuje   format.  Nakonec
                 vfscanf  ulo  naformtovan vstup na  adresu,  kter  se
                 pedv   v   argumentu   nsledujcm  za  format.  Poet
                 formtovch specifiktor a adres mus bt shodn s potem
                 vstupnch poloek.

                 vfscanf se me zastavit v prbhu snmn  poloky, dve
                 ne dojde k normlnmu  konci  poloky  (przdnmu znaku),
                 nebo me,  z cel ady pin, dojt k jejmu pedasnmu
                 ukonen. Rozbor tchto pin je podrobn popsn u scanf.

Vracen hodnota  vscanf  vrac poet vstupnch poloek, kter byly  spn
                 sejmuty, konvertovny a uloeny; ve vracen hodnot nejsou
                 zapoteny poloky  sejmut,  ale  neuloen.  Pokud nebyla
                 uloena dn poloka, vrac hodnotu 0.


                                  - 528 - 


                 Pokud  se  vfscanf pokus pest  znaku  konce  souboru,
                 vrac EOF.

Penositelnost   vfscanf je dostupn v UNIX System V.

Viz t          fscanf, scanf, va_arg, va_end, va_start

Pklad          #include <stdio.h>
                 #include <stdlib.h>
                      *
                 FILE  fp
                                *
                 int vfpf (char  fmt, ...)
                 {
                      va_list argptr;
                      int cnr;

                      va_start (argptr, format);
                      cnt = vscanf (fp, fmt, argptr);
                      va_end (argptr);
                      return (cnt);
                 }
                 int main(void)
                 {
                      int inumber = 30;
                      float fnumber = 90.0;
                      char string [4] = "abc";

                      fp = tmpfile();
                      if (fp == NULL)
                      {
                           perror ("tmpfile() call");
                           exit(1);
                      }
                      fprintf (fp, %d %f %s, inumber, fnumber, string);
                      rewind (fp);

                      vfsf (fp, %d %f %s" &inumber, &fnumber, string);
                      printf ("%d %f %s\n", inumber, fnumber, string);
                      fclose(fp);
                      return 0;
                 }




---------------------------------------------------------------------------
vprintf
---------------------------------------------------------------------------


Funkce           Vype formtovan vstup na stdout.

Syntax           #include <stdarg.h>
                                         *
                 int vprintf (const char  format, va_list arglist);

Prototyp v       stdio.h




                                  - 529 - 


Poznmky         Funkce v...printf pedstavuj vlastn alternativn vstupn
                 body pro funkce ...printf. Pracuj stejn jako jako jejich
                 protjky  ...printf,  ale  msto  seznamu argument se do
                 nich pedv ukazatel na seznam argument.

                 Podrobnosti tkajc se formtovch specifiktor  najdete
                 u popisu printf.
                 vprintf pracuje s ukazatelem na mnoinu  argument,  a pro
                 kad argument pouije formtov specifiktor,  uloen ve
                 formtovm   etzci,  na  nj  ukazuje  format.   Vstup
                 formtovch dat je smrovm na stdout.  Poet  argument a
                 formtovch specifiktor mus bt shodn.

                 Upozornn: Pokud pouijete  nvt SS! = DS, pedpokld
                 vprintf, e pedvan adresa je v SS segmentu.

Vracen hodnota  vprintf vrac poet byt, kter  byly  poslny  na vstup.
                 Dojde-li k chyb, vprintf vrac EOF.

Penositelnost   vprintf  je  dostupn  v UNIX System V a je kompatibiln s
                 ANSI C.

Viz t          printf, va_arg, va_end, va_start

Pklad          #include <stdio.h>
                               *
                 int vpf (char  fmt, ...)
                 {
                      va_list argptr;
                      int cnt;

                      va_start (argptr, format);
                      cnt = vprintf (fmt, argptr);
                      va_end (argptr);

                      return (cnt);
                 }
                 int main(void)
                 {
                      int inumber = 30;
                      float fnumber = 90.0;
                           *
                      char  string = "abc";

                      vpf ("%d %f %s\n, inumber, fnumber, string);
                      return 0;
                 }




---------------------------------------------------------------------------
vscanf
---------------------------------------------------------------------------


Funkce           Sejme formtovan vstup ze stdin.

Syntax           #include <stdarg.h>



                                  - 530 - 


                                        *
                 int vscanf (const char  format, va_list arglist);

Prototyp v       stdio.h

Poznmky         Funkce v...scanf pedstavuj vlastn alternativn  vstupn
                 body pro funkce ...scanf. Pracuj stejn jako  jako jejich
                 protjky ...scanf, ale pedv  se  do  nich  ukazatel na
                 seznam argument, namsto seznamu argument.

                 Podrobnosti tkajc se formtovch specifiktor  najdete
                 u popisu scanf.
                 vscanf snm, po jednom  znaku,  ze  stdin  adu vstupnch
                 poloek.   Potom   kadou   poloku   naformtuje    podle
                 formtovho   specifiktoru,   kter   j  byl  pedn  ve
                 formtovm  etzci,  na  kter  ukazuje  format.  Nakonec
                 vscanf ulo  naformtovan  vstup  na  adresu,  kter  se
                 pedv   v   argumentu   nsledujcm  za  format.  Poet
                 formtovch specifiktor a adres mus bt shodn s potem
                 vstupnch poloek.

                 Popis   informac,   kter   mus   obsahovat    formtov
                 specifiktor najdete u scanf.

                 vscanf se me zastavit v prbhu  snmn  poloky, dve
                 ne dojde k normlnmu  konci  poloky  (przdnmu znaku),
                 nebo me,  z cel ady pin, dojt k jejmu pedasnmu
                 ukonen. Rozbor tchto pin je podrobn popsn u scanf.

Vracen hodnota  vscanf  vrac poet vstupnch poloek, kter byly  spn
                 sejmuty, konvertovny a uloeny; ve vracen hodnot nejsou
                 zapoteny poloky  sejmut,  ale  neuloen.  Pokud nebyla
                 uloena dn poloka, vrac hodnotu 0.

                 Pokud  se  vfscanf pokus pest  znaku  konce  souboru,
                 vrac EOF.

Penositelnost   vscanf je dostupn v UNIX System V.

Viz t          fscanf, scanf, va_arg, va_end, va_start

Pklad          #include <stdio.h>
                 #include <conio.h>
                                 *
                 int vscnf (char  fmt, ...)
                 {
                      va_list argptr;
                      int cnr;

                      printf ("Zadej cele cislo, cislo v pohyb. carce a
                      retezec (napr.i,f,s)\n")
                      va_start (argptr, format);
                      cnt = vscanf (fmt, argptr);
                      va_end (argptr);
                      return (cnt);
                 }
                 int main(void)
                 {
                      int inumber;
                      float fnumber;


                                  - 531 - 


                      char string [80];

                      vscnf ("%d, %f, %s", &inumber, &fnumber, string);
                      printf ("%d %f %s, inumber, fnumber, string);
                      return 0;
                 }




---------------------------------------------------------------------------
vsprintf
---------------------------------------------------------------------------


Funkce           Zape formtovan vstup do etzce.

Syntax           #include <stdarg.h>
                                    *                      *
                 int vsprintf (char  buffer,  const  char   format, va_list
                 arglist);

Prototyp v       stdio.h

Poznmky         Funkce v...printf pedstavuj vlastn alternativn vstupn
                 body pro funkce ...printf. Pracuj stejn jako jako jejich
                 protjky  ...printf,  ale  msto  seznamu argument se do
                 nich pedv ukazatel na seznam argument.

                 Podrobnosti tkajc se formtovch specifiktor  najdete
                 u popisu printf.
                 vsprintf pracuje s ukazatelem na mnoinu argument,  a pro
                 kad argument pouije formtov specifiktor,  uloen ve
                 formtovm   etzci,  na  nj  ukazuje  format.   Vstup
                 formtovch dat je smrovn do etzce. Poet  argument a
                 formtovch specifiktor mus bt shodn.

Vracen hodnota  vsprintf vrac poet byt, kter byly smovny na vstup.
                 Dojde-li k chyb, vprintf vrac EOF.

Penositelnost   vsprintf je dostupn v UNIX System V a  je  kompatibiln s
                 ANSI C.

Viz t          printf, va_arg, va_end, va_start

Pklad          #include <stdio.h>
                 #include <conio.h>

                 char buffer [80];
                                *
                 int vspf (char  fmt, ...)
                 {
                      va_list argptr;
                      int cnt;

                      va_start (argptr, format);
                      cnt = vsprintf (buffer, fmt, argptr);
                      va_end (argptr);
                      return (cnt);
                 }


                                  - 532 - 


                 int main(void)
                 {
                      int inumber = 30;
                      float fnumber = 90.0;
                      char string [3] = "abc";

                      vspf ("%d %f %s, inumber, fnumber, string);
                      printf ("%s\n", buffer);
                      return 0;
                 }




---------------------------------------------------------------------------
vsscanf
---------------------------------------------------------------------------


Funkce           Sejme formtovan vstup ze streamu.

Syntax           #include <stdarg.h>
                                            *                      *
                 int vsscanf  (const  char   buffer,  const  char   format,
                 va_list arglist);

Prototyp v       stdio.h

Poznmky         Funkce v...scanf pedstavuj vlastn alternativn  vstupn
                 body pro funkce ...scanf. Pracuj stejn jako  jako jejich
                 protjky ...scanf, ale pedv  se  do  nich  ukazatel na
                 seznam argument, namsto seznamu argument.

                 Podrobnosti tkajc se formtovch specifiktor  najdete
                 u popisu scanf.
                 vsscanf snm, po jednom znaku, ze streamu  adu vstupnch
                 poloek.   Potom   kadou   poloku   naformtuje    podle
                 formtovho   specifiktoru,   kter   j  byl  pedn  ve
                 formtovm  etzci,  na  kter  ukazuje  format.  Nakonec
                 vsscanf  ulo  naformtovan vstup na  adresu,  kter  se
                 pedv   v   argumentu   nsledujcm  za  format.  Poet
                 formtovch specifiktor a adres mus bt shodn s potem
                 vstupnch poloek.

                 Popis  informac,  kter  mus  bt obsaeny ve formtovm
                 etzci je uveden u scanf.

                 vsscanf se me zastavit v prbhu snmn  poloky, dve
                 ne dojde k normlnmu  konci  poloky  (przdnmu znaku),
                 nebo me,  z cel ady pin, dojt k jejmu pedasnmu
                 ukonen. Rozbor tchto pin je podrobn popsn u scanf.

Vracen hodnota  vsscanf vrac poet  vstupnch poloek, kter byly spn
                 sejmuty, konvertovny a uloeny; ve vracen hodnot nejsou
                 zapoteny poloky  sejmut,  ale  neuloen.  Pokud nebyla
                 uloena dn poloka, vrac hodnotu 0.
                 Pokud  se  vsscanf pokus pest  znaku  konce  souboru,
                 vrac EOF.

Penositelnost   vsscanf je dostupn v UNIX System V.


                                  - 533 - 


Viz t          fscanf, scanf, sscanf, va_arg, va_end, va_start, vfscanf

Pklad          #include <stdio.h>
                 #include <conio.h>

                 char buffer[80] = "30 90.0 abc";

                 int vssf (char *fmt, ...)
                 {
                      va_list argptr;
                      int cnr;
                      fflush(stdin);
                      va_start (argptr, format);
                      cnt = vsscanf (buffer, fmt, argptr);
                      va_end (argptr);
                      return (cnt);
                 }
                 int main(void)
                 {
                      int inumber;
                      float fnumber;
                      char string [80];

                      vssf ("%d %f %s" &inumber, &fnumber, string);
                      printf ("%d %f %s\n", inumber, fnumber, string);
                      return 0;
                 }




---------------------------------------------------------------------------
wherex
---------------------------------------------------------------------------


Funkce           Udv horizontln pozici kurzoru v oknku.

Syntax           #include <conio.h>
                 int wherex(void);

Prototyp v       conio.h

Poznmky         wherex vrac x-ovou  souadnici aktuln polohy kurzoru (v
                 rmci aktulnho textovho oknka).

Vracen hodnota  wherex vrac integerovou hodnotu z intervalu 1 a 80.

Penositelnost   wherex pracuje pouze  na  potach IBM PC a potach s
                 nimi kompatibilnch. Odpovdajc funkce existuje  v Turbo
                 Pascalu.

Viz t          gettextinfo, gotoxy, wherey

Pklad          #include <conio.h>

                 int main(void)
                 {
                      clrscr();
                      gotoxy (10,10);


                                  - 534 - 


                      cprintf ("Aktualni pozice je X: %d Y: %d\r\n",
                      wherex(), wherey());
                      getch();

                      return 0;
                 }




---------------------------------------------------------------------------
wherey
---------------------------------------------------------------------------


Funkce           Udv vertikln pozici kurzoru v oknku.

Syntax           #include <conio.h>
                 int wherey(void);

Prototyp v       conio.h

Poznmky         wherey vrac y-novou souadnici aktuln polohy kurzoru (v
                 rmci aktulnho textovho oknka).

Vracen hodnota  wherey vrac integerovou  hodnotu  z intervalu 1 a 25, 43
                 nebo 50.

Penositelnost   wherey pracuje pouze  na  potach IBM PC a potach s
                 nimi kompatibilnch. Odpovdajc funkce existuje  v Turbo
                 Pascalu.

Viz t          gettextinfo, gotoxy, wherex

Pklad          #include <conio.h>

                 int main(void)
                 {
                      clrscr();
                      gotoxy (10,10);
                      cprintf ("Aktualni pozice je X: %d Y: %d\r\n",
                      wherex(), wherey());
                      getch();

                      return 0;
                 }




---------------------------------------------------------------------------
window
---------------------------------------------------------------------------


Funkce           Definuje aktivn oknko pro textov reim.

Syntax           #include <conio.h>
                 void window (int left, int top, int right, int bottom);



                                  - 535 - 


Prototyp v       conio.h

Poznmky         window definuje textov oknko  na  obrazovce.  Pokud jsou
                 zadan souadnice neplatn, voln window se ignoruje.

                 letf a top jsou souadnice levho hornho rohu oknka.
                 right  a  bottom  jsou  souadnice  pravho  dolnho  rohu
                 oknka.

                 Minimln  velikost  textovho  oknka  je jeden sloupec a
                 jeden dek. Implicitn  oknko pokrv celou obrazovku, s
                 nsledujcmi souadnicemi:
                 80-ti sloupcov reim         1,1,80,25
                 40-ti sloupcov reim         1,1,40,25

Vracen hodnota  dn.

Penositelnost   window pracuje pouze  na  potach IMB PC a potach s
                 nimi kompatibilnch. Odpovdajc funkce existuje  v Turbo
                 Pascalu.

Viz t          clreol,  clrscr,  delline, gettextinfo,  gotoxy,  insline,
                 puttext, textmode

Pklad          #include <conio.h>

                 int main(void)
                 {
                      window (10,10,40,11);
                      textcolor(BLACK);
                      textbackground(WHITE);
                      cprintf("Tohleto je zkouska\r\n");

                      return 0;
                 }




---------------------------------------------------------------------------
_write
---------------------------------------------------------------------------


Funkce           Zapisuje do souboru.

Syntax           #include <io.h>
                                              *
                 int _write (int handle, void  buf, unsigned len);

Prototyp v       io.h

Poznmky         _write se  pokus zapsat len byt z vyrovnvac pamti, na
                 kterou ukazuje  buf,  do  souboru,  ktermu  je  piazeno
                 symbolick slo handle.

                 Maximln poet byt, kter je  _write  schopna  zapsat je
                 65534,  protoe 65535 (0xFFFF) je toton  s  -1,  co  je
                 indiktor chybovho nvratu z _write.



                                  - 536 - 


                 _write nepevd znak nvrat vozu (LF)  na  dvojici CR/LF,
                 protoe pracuje pouze s binrnmi soubory.

                 Pokud je poet skuten zapsanch  byt  men,  ne poet
                 zadanch byt, je  tato  situace povaovna za chybu, a je
                 pravdpodobn zpsobena zaplnnm diskem.

                 Pokud  tato  funkce  zapisuje  do diskovho souboru, zane
                 zapisovat  od  aktuln pozice kurzoru.  Pokud  pracuje  s
                 vstupnm zazenm, posl byty pmo na toto zazen.

                 Zapisuje-li   _write   do   souboru  otevenho  s  volbou
                 O_APPEND, pak se ukazatel ped zatkem zpisu automaticky
                 neposune na EOF.

Vracen hodnota  _write vrac poet zapsanch byt. Doje-li k  chyb, vrac
                 _write -1, a globln promnn errno se nastav na jednu z
                 nsledujcch hodnot:

                      EACCES    Pstup nen povolen.
                      EBADF     Chybn slo souboru.

Penositelnost   _write je dostupn pouze v DOSu.

Viz t          lseek, _read, write

Pklad          #include <stdio.h>
                 #include <io.h>
                 #include <alloc.h>
                 #include <fcnt.h>
                 #include <process.h>
                 #include <sys\stat.h>

                 int main(void)
                 {
                           *
                      void  buf
                      int handle, bytes;

                      buf = malloc (200);
                      /*
                      Vytvo se v aktulnm adresi soubor s nzvem
                      TEST.$$$ a zape se do nj 200 byt. Pokud TEST.$$$
                      u existuje, jeho obsah se pepe.*/

                      if ((handle = open("TEST.$$$", O_CREAT | O_WRONLY |
                           O_BINARY, S_WRITE | S_IREAD)) == -1)
                      {
                           printf ("Chyba pri otevirani souboru\n");
                           exit(1);
                      }
                      if ((bytes = _write (handle, buf, 200)) == -1)
                      {
                           printf ("Chyba pri pokusu o zapis\n");
                           exit(1);
                      }
                      printf ("_write: zapsano %d bytu.\n", bytes);
                      return 0;
                 }



                                  - 537 - 


---------------------------------------------------------------------------
write
---------------------------------------------------------------------------


Funkce           Zapisuje do souboru.

Syntax           #include <io.h>
                                             *
                 int write (int handle, void  buf, unsigned len);

Prototyp v       io.h

Poznmky         write  zapisuje datovou vyrovnvac pam؟ do souboru  nebo
                 na  zazen,  specifikovan  pomoc  symbolickho   sla
                 handle. handle  je  symbolick  slo  souboru  zskan  z
                 voln creat, open, dup nebo dup2.

                 Tato  funkce  se  pokus  zapsat  len  byt  z vyrovnvac
                 pamti, na kterou  ukazuje  buf,  do  souboru,  ktermu je
                 piazeno   symbolick   slo   handle.  Pokud  se  write
                 nepouv pro zpis do  textovho  souboru,  nezape vce
                 byt, ne udv parametr len.

                 Maximln poet byt, kter  je  write  schopen  zapsat je
                 65534,  protoe 65535 (0xFFFF) je toton  s  -1,  co  je
                 indiktor chybovho nvratu z write.

                 Pi zpisu do textovho souboru pevd write  znak nvrat
                 vozu (LF) na dvojici CR/LF.

                 Pokud je poet skuten zapsanch byt  men,  ne zadan
                 poet byt,  je tato situace povaovna za chybu, kter je
                 pravdpodobn zpsobena zaplnnm diskem.

                 Pokud  tato  funkce  zapisuje  do diskovho souboru, zane
                 zapisovat  od  aktuln pozice kurzoru.  Pokud  pracuje  s
                 vstupnm zazenm, posl byty pmo na toto zazen.

                 Zapisuje-li write do souboru otevenho s volbou O_APPEND,
                 pak se ukazatel ped zatkem zpisu automaticky posune na
                 EOF.

Vracen hodnota  write vrac poet zapsanch byt. Pi zpisu  do textovch
                 soubor  nezapotv  write  vygenerovan  znaky  nvratu
                 vozu.  Dojde-li  k  chyb,  vrac  _write  -1,  a globln
                 promnn errno se nastav na jednu z nsledujcch hodnot:

                      EACCES    Pstup nen povolen.
                      EBADF     Chybn slo souboru.

Penositelnost   _write je dostupn pouze v DOSu.

Viz t          creat, lseek, open, _read, _write








                                  - 538 - 








                            K a p i t o l a   2

                             Globln promnn


                 Turbo  C++ vm  nabz  adu  peddefinovanch  globlnch
                 promnnch, kter slou pro nkter obecn veliiny, jako
                 je datum a as,  argumenty  pkazovch  dk atd. V tto
                 kapitole jsou uvedeny jejich definice a popisy.



---------------------------------------------------------------------------
_8087
---------------------------------------------------------------------------


Funkce           Pznak pouit koprocesoru.

Syntax           extern int _8087

Prototyp v       dos.h

Poznmky         Jestlie  inicializan autodetekn  kd  zjist,  e  je
                 instalovn  koprocesor pro pohyblivou rku, dosad se  do
                 promnn  _8087  nenulov  hodnota  (1,  2  nebo   3,  pro
                 koprecesor  8087  respektive  80287  nebo 80387). Jinak m
                 promnn _8087 hodnotu 0.

                 Logiku  autodetekce  je   mon   pedefinovat  nastavenm
                 hodnoty YES nebo NO do konfiguran  promnn  87. (Pkaz
                 vypad nsledovn: 87=YES  a  87=NO; - ped a za rovntkem
                 nesm bt mezera).Pokud provedete toto pedefinovn, bude
                 jm promnn _8087 ovlivnna.

                 Podrobnj informace o konfiguran promnn 87 najdete v
                 Programtorsk pruce (Programmer's  Guide),  v Kapitole
                 4, "Modely pamt, pohybliv rka a pekryvy".



---------------------------------------------------------------------------
_argc
---------------------------------------------------------------------------


Funkce           Ukld se do n poet argument v pkazovm dku.

Syntax           extern int _argc

Prototyp v       dos.h

Poznmky         _argc nabv hodnotu argumentu argc, kter  byl  pedn do
                 funkce main pi spoutn programu.


                                  - 539 - 


---------------------------------------------------------------------------
_argv
---------------------------------------------------------------------------


Funkce           Pole ukazatel na argumenty z pkazovho dku.

Syntax           extern char *_argv[];

Prototyp v       dos.h

Poznmky         _argv je ukazatel na pole, obsahujc originln argumenty
                 z pkazovho dku (prvky argv[]), kter byly  pedny do
                 funkce main pi spoutn programu.



---------------------------------------------------------------------------
_ctype
---------------------------------------------------------------------------


Funkce           Pole informac o znakovch atributech.

Syntax           extern char _ctype[]

Prototyp v       ctype.h

Poznmky         _ctype  je   pole   informac   o   znakovch  atributech,
                 indexovan podle ASCII hodnoty zvten o 1. Kad poloka
                 pedstavuje mnoinu bit, kter popisuj znak.
                 Toto pole vyuvaj funkce isdigit, isprint a dal.



---------------------------------------------------------------------------
daylight
---------------------------------------------------------------------------


Funkce           Indikuje, zda byla provedena prava, zajiujc pouvn
                 letnho asu.

Syntax           extern int daylight;

Prototyp v       time.h

Poznmky         daylight  pouvaj  funkce, pracujc s  datem  a  asem.
                 Funkce  tzset,  ftime,  a  localtime  do  n  nastavuj 1,
                 jestie se  pouv letn as anebo 0, jestlie se pouv
                 standardn as.



---------------------------------------------------------------------------
directvideo
---------------------------------------------------------------------------


Funkce           Pznak ovldajc vstup na obrazovku.


                                  - 540 - 


Syntax           extern int directvideo;

Prototyp v       directvideo uruje, zda pjde  vstup  z  vaich program,
                 smrovan na  obrazovu (nap. z cputs) pmo do RAM pamti
                 obrazovky  (directvideo  =  1),  nebo zda bude zpracovvn
                 pes ROM BIOS (directvideo = 0).

                 Implicitn m direcvideo hodnotu 1  (vstup  jde  pmo do
                 RAM pamti obrazovky). directvideo = 1  mete  pout jen
                 tehdy,  je-li  v displej hardwarov  shodn  s  adaptery
                 displej  IBM. Jestlie nastavte directvideo = 0,  mete
                 pracovat v kadm systmu kompatibilnm s IBM BIOS.



---------------------------------------------------------------------------
environ
---------------------------------------------------------------------------


Funkce           Zajiuje pstup ke  konfiguranm  promnnm definujcm
                 prosted DOSu.

Syntax           extern char *environ[];

Prototyp v       dos.h

Poznmky         environ  je  pole  ukazatel  na  etzce;  pouv  se  k
                 pstupu a prav  konfiguranch  promnnch definujcch
                 prosted DOSu. Kad z etzc m tvar:

                      envvar = varvalue

                 kde envar je nzev konfiguran promnn (jako nap. PATH)
                 a  varvalue  je  etzcov  hodnota,  na  kterou  se  tato
                 promnn nastavuje (nap. C:\BIN;C:\DOS;. etzec varvalue
                 me bt i przdn.

                 Kdy se  program  zan  provdt,  konfigurace prosted
                 DOSu se do nj  pmo  ped.  Uvdomte  si, e env, tet
                 argument pedvan do funkce main je toton s potenmi
                 hodnotami nastavenmi v environ.

                 daje   z  pole  environ  mete  zskat  pomoc   getenv;
                 pidvat,  mnit  nebo vymazvat poloky  v  poli  environ
                 mete vak pouze pomoc  funkce  putenv.  Modifikace me
                 zpsobit,   e   pole   definujc  prosted  zmn  svou
                 velikost,  nebo  e  se v pamti pesune  na  jin  msto;
                 environ   se  vak  automaticky  zmn  tak,  aby   nadle
                 ukazovala na toto pole.

Viz t          getenv, putenv










                                  - 541 - 


---------------------------------------------------------------------------
errno, _doserrno, sys_errlist, sys_nerr
---------------------------------------------------------------------------


Funkce           Umouje funkci perror vytisknout chybov hlen.

Syntax           extern int errno;
                 extern int _doserrno;
                 extern char *sys_errlist[];
                 extern int sys_nerr;

Prototyp v       errno.h,   stdlib.h   (errno,    _doserrno,   sys_errlist,
                 sys_nerr)
                 dos.h (_doserrno)

Poznmky         Promnn  errno, sys_errlist  a  sys_nerr  pouv  funkce
                 perror pro tisk  chybovch hlen, kter tiskne, jestlie
                 nkter  knihovn rutiny neuspj. _doserrno je  promnn,
                 kter mapuje adu chybovch  kd  DOSu  do  errno; perrno
                 vak nepouv _doserrno pmo.

                 _doserrno:  Jestlie  pi  systmovm  voln DOSu dojde k
                 chyb,  piad  se  do  _doserrno  chybov  kd  z  DOSu.
                 Promnn  errno  je obdobn chybov  promnn,  zddn  z
                 UNIXu.

                 errno:   Jestlie  pi  systmovm  voln,  nebo   voln
                 matematick funkce  dojde  k  chyb,  dosad  se  do errno
                 hodnota, indikujc typ  chyby. V nkterch ppadech jsou
                 errno  a  _doserrno  toton.  V  jinch  ppadech  errno
                 neobsahuje skutenou hodnotu chybovho kdu DOSu, kter je
                 uloena v _doserrno.  Krom  toho  existuj  i  dal typy
                 chyb, kter nastav hodnotu v errno ale ne v _doserrno.

                 sys_errlist: obsahuje pole etzc s  chybovmi hlenmi.
                 errno mete pout jako index  v  tomto  poli,  kter vm
                 pome  najt  etzec,  odpovdajc  pslunmu   slu
                 chyby. Soust  tchto  etzc  nejsou  znaky  pro  nov
                 dek.

                 sys_ner: Tato promnn je  definovna  jako  poet etzc
                 obsahujcch chybov hlen, obsaench v sys_errlist.

                 V nsledujc tabulce jsou uvedeny hodnoty mnemotechnik (a
                 jejich vznam), uloench v sys_errlist.


                 Mnemonikum   Vznam

                 E2BIG        Arg list too long
                              Seznam argument je pli dlouh.
                 EACCES       Permission denied
                              Zpsob pstupu nen povolen.
                 EBADF        Bad file number
                              Chybn slo souboru.
                 ECONTR       Memory blocks destroyed
                              Pam؟ov bloky jsou znieny.
                 ECURDIR      Attempt to remove CurDir
                              Pokus zruit aktuln adres.


                                  - 542 - 


                 EDOM         Domain error
                              Chybn definin obor.
                 EEXIT        File already exists
                              Soubor ji existuje.
                 EFAULT       Unknown error
                              Neznm chyba.
                 EINVACC      Invalid access code
                              Neplatn kd pstupu.
                 EINVAL       Invalid argument
                              Neplatn argument.
                 EINVDAT      Invalid data
                              Neplatn data.
                 EINVRDV      Invalid drive specified
                              Specifikovna neplatn diskov jednotka.
                 EINVENV      Invalid environment
                              Neplatn konfigurace.
                 EINVFMT      Invalid format
                              Neplatn formt.
                 EINVFNC      Invalid function number
                              Neplatn slo funkce.
                 EINVMEM      Invalid memory block address
                              Neplatn adresa pam؟ovho bloku.
                 EMFILE       Too many open files
                              Pli mnoho otevench soubor.
                 ENMFILE      No more files
                              Vce soubor ji neexistuje.
                 ENODEV       No such device
                              Takov zazen neexistuje.
                 ENOENT       No such file or directory
                              Takov soubor nebo adres neexistuj.
                 ENOEXEC      Exec format error
                              Chyba formtu souboru .EXE.
                 ENOFILE      No such file or directory
                              Takov soubor nebo adres neexistuj.
                 ENOMEM       Not enough memory
                              Nedostaten kapacita pamti.
                 ENOPATH      Path not found
                              Cesta nenalezena.
                 ENOTSAM      Not same device
                              Tentokrt volte jin zazen.
                 ERANGE       Result out of range
                              Vsledek mimo povolen rozsah.
                 EXDEV        Cross-device link
                              Spojen pes rzn zazen
                 EZERO        Error 0.
                              Chyba 0, t.j. bez chyby.


                 V nsledujcm seznamu jsou uvedeny mnemonika pro skuten
                 chybov kdy DOSu, kter mohou bt dosazeny  do _doserrno.
                 (Tato hodnota  _doserrno  me  ale  nemus  bt  mapovna
                 (pomoc  errno)  do  odpovdajcho  etzce   s  chybovm
                 hlenm v sys_errlist).


                 Mnemonikum   Chybov kd DOSu

                 E2BIG        Bad environ
                              Chybn konfigurace
                 EACCES       Access denied


                                  - 543 - 


                              Zpsob pstupu nen povolen
                 EACCES       Bad access
                              Chybn pstup
                 EACCES       Is current dir
                              Jste v aktulnm adresi
                 EBADF        Bad handle
                              Chybn symbolick slo souboru
                 EFAULT       Reserved
                              Reservov
                 EINVAL       Bad data
                              Chybn data
                 EINVAL       Bad function
                              Chybn funkce
                 EMFILE       Too many open
                              Pli mnoho otevench soubor
                 ENOENT       No such file or directory
                              Takov soubor nebo adres neexistuje
                 ENOEXEC      Bad format
                              Chybn formt
                 ENOMEM       Mcb destroyed
                              Znien blok zen pamti (Memory Control
                              Block)
                 ENOMEM       Out of memory
                              Nedostaten kapacita pamti
                 ENOMEM       Bad block
                              Chybn blok
                 EXDEV        Bad drive
                              Chybn diskov jednotka
                 EXDEV        Not same device
                              Tentokrt volte jin zazen


                 Podrobnj informace o chybovch kdech, kter vrac DOS,
                 najdete v referenn pruce DOSu.

Pklad          #include <errno.h>
                 #include <stdio.h>
                             *
                 extern char  sys_errlist[];

                 main()
                 {
                      int i = 0;
                      while (sys_errlist[i++]) printf ("%s\n",
                      sys_errlist[i]);
                      return 0;
                 }




---------------------------------------------------------------------------
_fmode
---------------------------------------------------------------------------


Funkce           Uruje implicitn reim prce se souborem.

Syntax           extern int _fmode



                                  - 544 - 


Prototyp v       fcntl.h

Poznmky         _fmode  uruje,  v  jakm  reimu (textovm nebo binrnm)
                 bude  soubor oteven  a  zpracovvn.  Implicitn  hodnota
                 _fmode je  O_TEXT. Tm se specifikuje, e soubor bude ten
                 v textovm  reimu.  Pokud  nastavte  do  _fmode  hodnotu
                 O_BINARY, bude soubor oteven a  ten  v  binrnm reimu.
                 (O_TEXT a O_BINARY jsou definovny v fcntl.h).

                 V textovm reimu se pi  vstupu  pevd  kombinace znak
                 nvrat  vozu  /  posun dku (CR/LF) na jeden znak - posun
                 dku (LF). Pi vstupu  se  naopak  znaky LF prevdj na
                 kombinaci CR/LF.

                 V binrnm reimu se dn pevody neprovdj.

                 Implicitn   reim,   nastaven   pomoc   _fmode   mete
                 pedefinovat tak, e pi  voln  knihovnch  rutin fopen,
                 fdopen a freopen specifikujete v argumentu typu type buto
                 t (pro textov reim) nebo b (pro binrn  reim).  Tak v
                 rutin open me argument  access  obsahovat  bu O_BINARY
                 nebo  O_TEXT, co  explicitn  definuje  otevran  soubor
                 (zadan argumentem open pathname).




---------------------------------------------------------------------------
_heaplen
---------------------------------------------------------------------------


Funkce           Obsahuje velikost blzkho (near) heapu.

Syntax           extern unsigned _heaplen

Prototyp v       dos.h

Poznmky         Promnn _heaplen specifikuje velikost (v bytech) blzkho
                 heapu v malch  datovch modelech (drobn, mal, stedn).
                 Pro  velk  datov modely (kompaktn,  rozshl  a  velk)
                 _heaplen  nen  deklarovna,  protoe  u  nich  neexistuje
                 blzk heap.

                 V malch  a  stednch  modelech  se  vypotv  velikost
                 datovho segmentu nsledovn:

                 data_segment  [small,  medium]  =  global_data  +  heap  +
                 zasobnik

                 kde velikost zsobnku (stack)  me  bt  upravena pomoc
                 _stklen.

                 Pokud do _heaplen  nastavte nulu, alokuje program 64Kbyt
                 pro datov segment, take vsledn velikost heapu bude

                 64K - (global_data + zasobnik) byt





                                  - 545 - 


                 Implicitn  se  _heaplen  rovn  nule,  take  pokud  sami
                 nespecifikujete  _heaplen, budete  mt  datov  segment  o
                 velikosti 64K.

                 U drobnho pam؟ovho modelu je  vechno  (vetn  kdu) v
                 jednom  segmentu,  take  vpoet  datovho   segmentu  se
                 provede tak, aby  segment  obsahoval kd plus 256 byt pro
                 prefix programovho segmentu (PSP).

                 data_segment [tiny] = 256  +  kod  +  global_data + heap +
                 zasobnik

                 Pokud u drobnho (tiny) modelu ponechte _heaplen rovno 0,
                 zskte vslednou velikost heapu tak, e  od  64K odetete
                 PSP, kd, globln data a zsobnk(stack).

                 U kompaktnch a  velkch  model,  kde  nen  dn blzk
                 heap, a  zsobnk  je  umstn  ve  vlastnm  segmentu, je
                 datov segment definovn nsledovn:

                 data_segment [compact, large] = global_data

                 V  rozshlm  (huge)  modelu  je  zsobnk  v  samostatnm
                 segmentu a kad modul m vlastn datov segment.

Viz t          _stklen



---------------------------------------------------------------------------
_openfd
---------------------------------------------------------------------------


Funkce           Pole reim pstupu.

Syntax           extern unsigned int _openfd[]

Prototyp v       io.h

Poznmky         _openfd je pole reim pstupu pro soubory a zazen.



---------------------------------------------------------------------------
_osmajor, _osminor
---------------------------------------------------------------------------


Funkce           Obsahuj hlavn a vedlej slo verze DOSu.

Syntax           extern unsigned char _osmajor
                 extern unsigned char _osminor

Prototyp v       dos.h

Poznmky         Umouj  samostatn  pstup k hlavnmu  a  k  vedlejmu
                 slu  verze  DOSu.   -osmajor  obsahuje  hlavn  slo  a
                 _osminor  vedlej  slo  verze  DOSu.   Pokud  napklad



                                  - 546 - 


                 pracujete pod  DOSem 3.2, bude _osmajor rovno 3 a _osminor
                 bude rovno 20.

                 Tyto promnn  mete  vyut,  pete-li  programy, kter
                 maj pracovat pod DOSem 2.x i 3.x. Nkter knihovn rutiny
                 pracuj pod rznmi  verzemi DOSu odlin, zatmco nkter
                 pracuj pouze  pod DOSem 3.x. (Viz nap. _open, creatnew a
                 loctl v pehledov sti tto referenn pruky.



---------------------------------------------------------------------------
_psp
---------------------------------------------------------------------------


Funkce           Obsahuje   adresu  segmentu,  v  nm  je  uloen   prefix
                 programovho segmentu (PSP) pro aktuln program.

Syntax           extern unsigned int _psp

Prototyp v       dos.h

Poznmky         PSP  je  deskriptor  procesu  v  DOSu.  Obsahuje  zkladn
                 DOSovsk informace o programu.

                 Podrobnj informace najdete v  Programtorsk referenn
                 pruce DOSu (DOS Programer's Reference Manual).



---------------------------------------------------------------------------
_stklen
---------------------------------------------------------------------------


Funkce           Obsahuje velikost zsobnku.

Syntax           extern unsigned _stklen

Prototyp v       dos.h

Poznmky         _stklen  specifikuje velikost  zsobnku  pro  vech  est
                 pam؟ovch model. Minimln  povolen  velikost zsobnku
                 je 128 slov; pokud zadte men velikost, pak se do _sklen
                 automaticky   nastav   minimln   velikost.   Implicitn
                 velikost zsobnku je 4K.

                 U malch a stednch model se velikost  datovho segmentu
                 vypot nsledovn:

                 data_segment [small,  medium]  =    global_data  +  heap +
                 zasobnik

                 kde lze velikost heapu stanovit pomoc _heaplen.

                 U drobnho  modelu  je  vechno,  vetn  kdu  uloeno ve
                 stejnm  segmentu, take vpoet datovho segmentu  zvis
                 na velikosti  kdu  +  256  byt  pro  prefix programovho
                 segmentu (PSP).


                                  - 547 - 


                 data_segment [tiny] = 256  +  kod  +  global_data + heap +
                 zasobnik

                 V kompaktnch a velkch modelech,  kde  nen  dn blzk
                 heap, a  zsobnk  m  svj  vlastn  segment,  se vypote
                 datov segment jednodue:

                 data_segment [compact, large] = global_data

                 V  rozshlm  (huge)  modelu  je  zsobnk  v  samostatnm
                 segmentu, a kad modul m svj vlastn datov segment.

Viz t          _heaplen

Pklad          #include <stdio.h>

                 /* Nastaven vtho zsobnku, ne je implicitn  */
                 /* Tato deklarace se tk globlnch dat  */

                 extern unsigned _stklen = 543210;

                 main()
                 {
                      /* zobraz aktuln velikost zsobnku  */
                      printf ("Velikost zasobniku je: %u\n", _stklen);
                      return 0;
                 }




---------------------------------------------------------------------------
timezone
---------------------------------------------------------------------------


Funkce           Obsahuje rozdl mezi mstnm  asem  a  GMT (greenwichskm
                 svtovm asem), udan v sekundch.

Syntax           extern long timezone;

Prototyp v       time.h

Poznmky         timezone pouvaj funkce pracujc s datem a asem.

                 Tuto promnnou vypotv funkce tzset; je to hodnota typu
                 long, do kter se  piad  hodnota  rozdlu  mezi mstnm
                 asem a greenwichskm svtovm asem, udan v sekundch.



---------------------------------------------------------------------------
tzname
---------------------------------------------------------------------------


Funkce           Pole ukazatel na nzvy asovch psem.

Syntax           extern char *tzname[2]



                                  - 548 - 


Prototyp v       time.h

Poznmky         Globln  promnn  tzname  obsahuje  pole   ukazatel  na
                 etzce,   obsahujc   zkratky  nzv   asovch   psem.
                 tzname[0] ukazuje na tznakov etzec, v nm  je uloen
                 nzev  asovho  psma  z  konfiguranho etce TZ. Pokud
                 nepouvte  letn  as,  ukazuje  tzname[1]   na  przdn
                 etzec.



---------------------------------------------------------------------------
version
---------------------------------------------------------------------------


Funkce           Obsahuje slo verze DOSu.

Syntax           extern unsigned int _version

Prototyp v       dos.h

Poznmky         _version  obsahuje slo verze DOSu, piem hlavn  slo
                 verze je uloeno v dolnm bytu a vedlej  slo  v hornm
                 bytu. (Pracujete-li s DOSem verze  x.y,  pak  x  je hlavn
                 slo a y je vedlej slo verze).



---------------------------------------------------------------------------
_wscroll
---------------------------------------------------------------------------


Funkce           Umouje,   ppadn   zabrauje   rolovn   pi    prci
                 vstup/vstupnch funkc na obrazovce.

Syntax           extern int _wscroll

Prototyp v       conio.h

Poznmky         _wscroll  je pznak  vstupu/vstupu  na  obrazovku.  Jeho
                 implicitn hodnota je 1. Pokud  do  _wscroll  nastavte 0,
                 zabrnte  tm rolovn. Toto nastaven me bt  vhodn,
                 chcete-li kreslit v blzkosti  okraj  oknka,  a nechcete
                 aby se pitom obrazovka rolovala.
















                                  - 549 - 
     1279343
