Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

buffers & FILE

[es] :: C/C++ programiranje :: buffers & FILE

[ Pregleda: 2523 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.tehnicom.net

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon buffers & FILE13.01.2002. u 13:33 - pre 271 meseci
imam dva pitanjca prvi je vezan kako skinuti liniski buffer sa stdin, jer mi je vazno da program odreaguje sto pre je procitao karakter sa tastature,
ja probao
fflush(stdin);
setbuf(stdin,(char*)NULL);

medjutim ovo ne da radi :(( jebe pa rastura, a probao sam i
setvbuf(stdin, (char *)NULL, _IONBF, 0); pa opet nista, cak sam i citao sa read sistemskim pozivom medjutim opet nista.

A drugo pitanje je vezano za strukturu FILE, gde da nadjem njenu definiciju pod linux-om jer primer iz Stivensove knjige "Advanced Programing in UNIX enviroment" ne radi kako treba, tj prijavljuje da dati elementi nisu elementi strukture FILE
Prikačeni fajlovi
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: buffers & FILE15.01.2002. u 13:50 - pre 271 meseci
FILE strukturu lepo mozes da nadjes u stdio.h

Citiram - Use the source Luke! -

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.tehnicom.net

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: buffers & FILE15.01.2002. u 18:30 - pre 271 meseci
Citat:
leka:
FILE strukturu lepo mozes da nadjes u stdio.h



Citiram - Use the source Luke! -


Nazalost nema je tamo, tamo sam prvo gledao jos pre nego sto sam postovao poruku :(( a cak sam i probao s grepom da ju nadjem na pocetku, pa mi ni to nije bilo dovoljno pa sam napisao regularni izraz i pustio pretrazio sa egrep-om kroz ceo include rekurzivno i opet nista :(( tako da mislim da je ukompajlirana u neki lib :)
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.verat.net



+7174 Profil

icon Re: buffers & FILE15.01.2002. u 19:06 - pre 271 meseci
Citat:
SyStemOuT:
A drugo pitanje je vezano za strukturu FILE, gde da nadjem njenu definiciju pod linux-om jer primer iz Stivensove knjige "Advanced Programing in UNIX enviroment" ne radi kako treba, tj prijavljuje da dati elementi nisu elementi strukture FILE


Pa ako ti kompajler prijavljuje za neki elemenat da nije odredjene strukture ti proveri da li je njegova definicija kompatibilna sa tom strukturom (recimo FILE) i onda uradi casting u FILE - mozda proradi ;-)

Uzgred, za Win32 FILE je definisan kao:

Code:

struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
        };
typedef struct _iobuf FILE;



Znam da ti nece pomoci, ali mozda nekom zatreba.

PS: da li si ukljucio sve potrebne biblioteke (stdio, file, ..) u tvoj fajl?




DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: buffers & FILE15.01.2002. u 19:31 - pre 271 meseci
Ja zaista ne znam sta si ti gledao, ali evo izvoda iz stdio.h:
Code:

/*
 * <sys/reent.h> defines __sFILE, _fpos_t.
 * They must be defined there because struct _reent needs them (and we don't
 * want reent.h to include this file.
 */

#include <sys/reent.h>

typedef _fpos_t fpos_t;

typedef struct __sFILE FILE;


A u sys/reent.h pise:
Code:

struct __sFILE {
  unsigned char *_p;    /* current position in (some) buffer */
  int    _r;        /* read space left for getc() */
  int    _w;        /* write space left for putc() */
  short    _flags;        /* flags, below; this FILE is free if 0 */
  short    _file;        /* fileno, if Unix descriptor, else -1 */
  struct __sbuf _bf;    /* the buffer (at least 1 byte, if !NULL) */
  int    _lbfsize;    /* 0 or -_bf._size, for inline putc */

  /* operations */
  _PTR    _cookie;    /* cookie passed to io functions */

  _READ_WRITE_RETURN_TYPE _EXFUN((*_read),(_PTR _cookie, char *_buf, int _n));
  _READ_WRITE_RETURN_TYPE _EXFUN((*_write),(_PTR _cookie, const char *_buf,
                        int _n));
  _fpos_t _EXFUN((*_seek),(_PTR _cookie, _fpos_t _offset, int _whence));
  int    _EXFUN((*_close),(_PTR _cookie));

  /* separate buffer for long sequences of ungetc() */
  struct __sbuf _ub;    /* ungetc buffer */
  unsigned char *_up;    /* saved _p when _p is doing ungetc data */
  int    _ur;        /* saved _r when _r is counting ungetc data */

  /* tricks to meet minimum requirements even when malloc() fails */
  unsigned char _ubuf[3];    /* guarantee an ungetc() buffer */
  unsigned char _nbuf[1];    /* guarantee a getc() buffer */

  /* separate buffer for fgetline() when line crosses buffer boundary */
  struct __sbuf _lb;    /* buffer for fgetline() */

  /* Unix stdio files get aligned to block boundaries on fseek() */
  int    _blksize;    /* stat.st_blksize (may be != _bf._size) */
  int    _offset;    /* current lseek offset */

  struct _reent *_data;
};


Kratko objasnjenje zasto je ovo u reent.h ce da usledi u mom sledecem tekstitju, jer ce biti predugacak za ovde...

Ocekujem da se Ivan (Dimkovic) javi i da zajedno eventualno napisemo neki opsirniji tekst, jer sam 101% siguran da se o tome malo pisalo i u nasim kompjutersnim casopisima a i u kompjuterskim knjigama...

(Dakle, posle ovoga citajte moj sledeti tekst.)


Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

[es] :: C/C++ programiranje :: buffers & FILE

[ Pregleda: 2523 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.