stdin, stdout, stderr

Fuzesi Arnold arno at externet.hu
Mon Apr 18 13:29:44 CEST 2005


Sziasztok!

Rászánnám magam, hogy a konyvtari stdio muveletekkel kezeljek file-t uC-n.
(fopen, fclose, fseek,fpos, stb.)

De lassan haladok elore. :(
Makro hegyek vannak definialva a h file-okban, es kicsit atlathatatlan
szamomra. Leginkabb azert mert nem ismerem az alap filozofiajat az stdio
kezelesnek.

---


A legutolso elemi fuggveny  megkapja a "handle" nevu integert , illetve a
byte-ot amit a bufferba kell tenni.

int (__writechar)(int Handle, unsigned char c)
{
  if (Handle == 1 || Handle == 2)
    return __putchar(c);                //__putchar az altalam definialt
fuggveny amelyik tenylegesen kiirja az adott byte-ot.
  else
    return -1;
}

A handle az stdin, stdout, stderr, stb azonositoja lenne?




--



Talaltam egy ilyet:
extern FILE *stdin, *stdout, *stderr; /*struct _FILET _Stdin, _Stdout,
_Stderr; */

Azaz egy kulso FILE tipusu pointerek az emlitett stream-ek.
De a FILE tipus deklaraciojat egyszeruen nem talalom.

Viszont gyanitom ebbol szarmazik:

/* FILE structure for library with buffered IO. Moved here from stdio.h */
typedef struct __Filet_BIO
  {
    unsigned short   _Mode;
    short            _Handle;
    unsigned char   *_Buf,
                    *_Bend,
                    *_Next;
    unsigned char   *_Rend,
                    *_Wend,
                    *_Rback;
    _Wchart         *_WRback,
                     _WBack[2];
    unsigned char   *_Rsave,
                    *_WRend,
                    *_WWend;
    struct _Mbstatet _Wstate;
    char            *_Tmpnam;
    unsigned char    _Back[2],
                     _Cbuf;
  } _Filet_BIO;

/* FILE structure for library without buffered IO. */
typedef struct __Filet_NBIO
  {
    struct __Filet_NBIO *_Next;
    unsigned short       _Mode;
    short                _Handle;
    union
      {
        int              _UnputBuf;
        _Wchart          _WUnputBuf;
      };
    char                *_Tmpnam;
#ifndef __NO_MULTIBYTE
    struct _Mbstatet _Wstate;
#endif /* __NO_MULTIBYTE */
  } _Filet_NBIO;
  /* declarations */

Valakinek ismeros ez? :)
Emleget POSIX szabvanybeli dolgokat a forras, elvben az kene legyen...

Ez lenne maga a FILE tipus?

Valaki aki "vágja" ezt a temat legyszi irjon mar 1-2 mondatot errol az
stdio-s tortenetrol.
Linux-os programozo kollegaknak gondolom csipobol megy....


Ezer koszonet,
Arnold




More information about the Elektro mailing list