[ LUGOS ] RH 5.0 in buggy buggy libi

Ales Horvat ales.horvat na nevtron.si
Sob Apr 11 13:24:36 CEST 1998


> Kako pa ti reces stringu, ki je zapisan kakor v zgornjem primeru? Saj je
> isto, kot ce bi rekel
> 
> const char[] staticni_string="A tole zdej dela al ne?!?!";
> fprintf (stderr, "%s\n", staticni_string);
> 
> ali pak? No ja, res ni v pravem pomenu besede staticni, pac pa konstantni.

Well; Konstante majo v "exe" fajlu tocno doloceno mesto in data segment
(fajn za delat programe, ki imajo config kar v exeju). Ce pa izpises
printf("Nekaj"); bo pa nekaj alociral tik pred izpisom in nimas sans, da
bi ga kje prej "povozil".

> > Zadnji del moje kode (zaradi debuginga) izgleda:
> > printf("Odpiram: '%s'\n", fname);
> > fle=fopen(fname, "a");
> > printf("Datoteka odprta\n");
> 
> Ali si prerpican, da ne naletis na omejitev najvecjega dovoljenega stevila
> odprtih datotek? 

Par vrstic naprej je nekaj fprintfjev in nato fclose; pa jovo na novo.

> Meni se je to ze zgodilo. Ampak se ne spomnim, kaj mi je
> takrat rekel. Morda tudi nic, ker navadno namesto straight fopen() raje
> napisem nekaj takega:
> 
> if ((fle=fopen(fname, "a"))==NULL) {
>     fprintf (stderr, "Datoteke %s ni bilo mogoce odpreti!\n", fname);
>     exit (1);
> }

Kar je lepo in prav. Vseeno, tudi v mojem primeru; ce ne bi mogel
odpreti datoteke, bi fle bil NULL in ne segmentation fault. Prisel bi
torej do "Datoteka odprta.".

> > In; verjemi, ne pride do zadnje vrstice ;)
> 
> Niti enkrat?

Kos sem ze omenil... Zadeva se izvaja v zanki.. Recimo ene 1000x pride
skozi; potem pa pok. :)

Bye,
	A.




Dodatne informacije o seznamu Starilist