[linux-programlama] Re: farkı dosyalar-ortak header-ortak degerler

---------

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Fri 02 Apr 2004 - 08:44:29 EST

  • Next message: Yilmaz Cankaya: "[linux-programlama] Re: Linux-php*dosyaya yazma sorunu*"

    Selamlar..

    Olmaz..

    Siz main icinde bir degeri degistirmisseniz bu kendi process sapce'iniz
    icinde kalir. Sonucta her iki programinizin ayri bellek alani vardir ve
    x bu bellek alanlari uzerindedir.

    Ama bu bilinen bir sorundur. Yapilmasi gereken, IPC denen mekanizmalari
    kullanmaktir. Sizin orneginize en cok uyan ise shared memory, shmem.
    Fakat soyle bir durum sozkonusudur. Diyelim ki, bur bir int degilde 10
    baytlik bir buffer. Bir process bunu degistirirken sonlanip digeri bunu
    okuyabilir. Yani, birisi "123567890" olan buffere "SERDAR" yazarken
    "SER4567890" halinde iken tam, is diger process'e verilebilir. O da bu
    anda okurken yanlis bilgiyi alip okur. Sonucta bunun adina da race
    condition denir ve onlemek icin cok taklalar atmak gerekebilir. Bilinen
    hic bir yol her zaman her durumda RACE CONDITION'lari onleyemez. Ama bu
    tur bir durumda semaphore kullanimi bir hayli etkili olacaktir.

    bakilacak cok man sayfasi var. Ama bu is sadece man okuyarak hallolacak
    kadar kolay degildir. Bolca pratik yapip bu konu uzerine yazilmis
    dokumanlari okumak gerekiyor. Thread dokumanlari son derece iyi
    kaynaklardir.

    Saygi ve sevgiler..

    > Merhabalar,
    >
    > 2 farklı çalıştırabilir dosya ortak bir header dosyasını kullanıyor, benim istediğim bu header dosyalarında ki değişkenleri de ortak kullanmaları.
    > Çok basit bir örnek vererek açıklamak istiyorum.
    > varsayalım
    > global.h içinde 'int x' tanımlanmış olsun.
    > degerata.c için main içinde x=10 olsun.
    > degergoster.c için main içinde 'printf("%d\n",x);' yazsın.
    > (*.c dosyalarında #include global.h var, unutmayalım:))
    > benim istedim şey degerata programını çalıştırdıkan sonra x degerinin degergoster içinde aynı olması. Yani degerata'dan sonra degergoster'i çalıştırınca ekrana 10 yazsın.
    > İkisi aynı projenin dosyaları fakat ikisi de farklı çalıştırılabilir dosyalar.
    > Bunu nasıl yapabilirim? gcc'nin bunu yapan bir parametresi mi var? Ya da böyle bir şey olabilir mi?
    >
    > Herkese İyi Çalışmalar!
    > Necati
    > ------
    >
    >
    > ---------------------------------
    > WIN FREE WORLDWIDE FLIGHTS - nominate a cafe in the Yahoo! Mail Internet Cafe Awards
    >
    >
    >


  • Next message: Yilmaz Cankaya: "[linux-programlama] Re: Linux-php*dosyaya yazma sorunu*"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.