[ 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