[linux-programlama] Re: C'de dosya okumada sorunlar

---------

From: Savas Alparslan (Garanti Teknoloji) (SavasAl@garanti.com.tr)
Date: Mon 02 Jun 2003 - 13:30:49 EEST

  • Next message: Enver ALTIN: "[linux-programlama] Re: Anjuta , Glade , Scrollkeeper ?"

    GLibc ile ilgili bu dokumani okumak genel olarak faydali olabilir

    http://www.gnu.org/manual/glibc-2.2.5/html_mono/libc.html

    malloc(), realloc() gibi fonksiyonlarin donus degerleri icin soyle bir=
     tavsiye var dokumanda:

    If no more space is available, malloc returns a null pointer. You should=
     check the value of every call to malloc. It is useful to write a=
     subroutine that calls malloc and reports an error if the value is a null=
     pointer, returning only if the value is nonzero. This function is=
     conventionally called xmalloc. Here it is:

    void *
    xmalloc (size_t size)
    {
      register void *value =3D malloc (size);
      if (value =3D=3D 0)
        fatal ("virtual memory exhausted");
      return value;
    }

    Boyle birseyi kullanmak daha okunabilir programlar saglar. Cunku her hafiza=
     ayrilmasi operasyonunu if'lerle kontrol etmemize gerek kalmaz. Zaten=
     hafiza ayrilamiyorsa problem oldukca buyuktur ve yapacak fazla bisey=
     yoktur. Biz cakilmasak bile baska bir yer nasil olsa cakilacaktir. Oyle=
     bir durumda hafizanin bittigini belirtip cikip gitmek daha iyi. (Hafizasi=
     az kucuk cihazlar icin farkli stratejiler izlenebilir)

    Savas

    > -----Original Message-----
    > From: Serdar Koylu [mailto:serdarkoylu@fisek.com.tr]
    > Sent: Saturday, May 31, 2003 11:23 PM
    > To: linux-programlama@liste.linux.org.tr
    > Subject: [linux-programlama] Re: C'de dosya okumada sorunlar
    >=20

    > Bu dongunun bir sekilde 8 kez calismis olmasi soyledigim gibi=20
    > bir tesaduf olmus. Burada sadece biraz acemilik kokuyor.=20
    > Hepimiz acemiydik. Yani, bunu bir tur kotuleme, kinama gibi=20
    > algilamayin. Oncelikle bir pointere dinamik olarak bellek=20
    > atamissaniz bunu hic bir zaman degismeyecek sekilde=20
    > saklamaniz gerekir. Hatta realloc yaparken bile. Mesela:
    >=20
    > ptr =3D malloc(1024);
    >=20
    > .....
    > .....
    >=20
    > ptr =3D realloc(ptr, 2048);
    >=20
    > Bunu yapmak bile tipik bir acemiliktir. Soyleki, ya 2048 bayt=20
    > bellek ayiramazsaniz ? Orijinal bellegin adresini nasil geri=20
    > kazanacaksiniz ? Gerci Linux kolay kolay burada geriye NULL=20
    > dondurmez. OOM killer, elinde baltasi cikar, bulabildigi ne=20
    > kadar program varsa bir guzel budar. Size bellek saglamaya=20
    > calisir. Ama bir programci asla OOM killer'e guvenmemek durumundadir.
    >=20

    ---------------------------------------------------------------------------=
    --------------------------------
    Bu mesaj ve ekleri mesajda gonderildigi belirtilen kisi/kisilere ozeldir ve=
     gizlidir.Bu mesajin muhatabi
    olmamaniza ragmen tarafiniza ulasmis olmasi halinde mesaj iceriginin=
     gizliligi ve bu gizlilik y=FCk=FCml=FCl=FCg=FCne
    uyulmasi zorunlulugu tarafiniz icin de soz konusudur.Mesaj ve eklerinde yer=
     alan bilgilerin dogrulugu ve
    g=FCncelligi konusunda gonderenin ya da sirketimizin herhangi bir=
     sorumlulugu bulunmamaktadir.Sirketimiz=20
    mesajin ve bilgilerinin size degisiklige ugrayarak veya gec ulasmasindan, b=
    =FCt=FCnl=FCg=FCn=FCn ve gizliliginin=20
    korunamamasindan, vir=FCs icermesinden ve bilgisayar sisteminize=
     verebilecegi herhangi bir zarardan=20
    sorumlu tutulamaz.

    This message and attachments are confidential and intended solely for the=
     individual(s) stated in this
    message.If you received this message although you are not the addressee you=
     are responsible to keep=20
    confidential the message.The sender has no responsibility for the accuracy=
     or correctness of the=20
    information in the message and its attachments.Our company shall have no=
     liability for any changes
    or late receiving,loss of integrity and confidentiality,viruses and any=
     damages caused in=20
    anyway to your computer system.


  • Next message: Enver ALTIN: "[linux-programlama] Re: Anjuta , Glade , Scrollkeeper ?"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.