Browsing the blog archives for May, 2009.

C ile Çevre (ENVIRONMENT) Değişkenlerini Kullanmak

Açık Kaynak, Programlama, tutorial, ytulinux

Önemli bir konu olan çevre değişkenlerinin c içerisinde kullanılması konusuna biraz eğilelim.

Diyelim ki bir program yazdık, ve programa ait bir takım ayarları home dizini altında saklamak istiyoruz. Bunun için $HOME değişkenini programın içerisine bir şekilde almamız gerekir. stdlib.h içerisindeki char * getenv(char * str1) fonksiyonu bize bunu sağlar. Bunun için bir örnek program yazdım, şöyle bir bakmanızla getenv in nasıl kullanıldığını anlayabileceğiniz bir program. Tabi programımız çok da basit olmasın diye for kullanımına dair bir çakallığı da göstermek istiyorum :)

Continue Reading »

Bu yazı toplamda 2381, bugün ise 0 kez görüntülenmiş

No Comments

getopt.h ile Programa Ait Seçeneklerin Argv Üzerinden İşlenmesi

Açık Kaynak, Programlama, tutorial, ytulinux

* http://www.advancedlinuxprogramming.com/ *

Evet “Önce bir selam vereydin” şeklindeki itirazlarınızı duyabiliyorum. Bu kaynak çok iyi, bu yüzden yazının başına yıldızla işaretlenmiş şekilde yazıyorum. Eğer linux üzerinde programlama konusunda aşmak istiyorum diyorsanız bir kaç haftalık tüm programınızı iptal edip bu kitaba yoğunlaşın derim. (Ne oldu zor geldi değil mi ehuehuehu zaten ben de azar azar ilerlemeyi düşünüyorum)

Neyse, konumuz programlara ait argümanların işlenmesi. Tabi biz işlemiyoruz her zamanki gibi, Zimbabwe’yi yeniden keşfetmenin alemi yok, yazmış adamlar.

Kullanacağımız kütüphane <getopt.h>. Adından da anlaşılacağı üzere, kullanıcı programı çağırırken hangi seçeneklerle çağırdıysa bunları bize sırasıyla veriyor.

Continue Reading »

Bu yazı toplamda 2373, bugün ise 0 kez görüntülenmiş

No Comments

stdarg.h ile Argüman Sayısı Belirsiz Olan Fonksiyonlar Yazmak

Açık Kaynak, Programlama, tutorial, ytulinux

Evet sayın seyirciler gün geçmiyor ki yazılımcıların iğrenç zevklerine bir başkası eklenmesin.

Bugünki (bugünkü, bugünküüü hmm evet) konumuz argüman sayısı belirsiz olan fonksiyonlar yazmak.

Hangimiz printf i görüp de, bu nasıl yazılıyor acaba dememiştir ki? Evet bugün çocukluk hayallerimiz gerçekleşiyor ve argüman sayısı kullanıma göre değişebilen mini mini fonksiyonlar yazıyoruz.

Öncelikle konu ile ilgili bir takım talihsiz açıklamalar yapayım.

Efenim öncelikle, işin bellek yerleşimine kadar uzanan bir takım hesaplamalarda bulunacağız ki ne yaptığımızın farkında olalım.

Continue Reading »

Bu yazı toplamda 2129, bugün ise 0 kez görüntülenmiş

No Comments

Opencv, c İle Nasıl Kullanılır? -Görüntü İşleme- (1)

Açık Kaynak, Programlama, tutorial, Uzun Kod İçerikli, ytulinux

Evet güne hızlı başladım, şimdi de opencv ile bir resim nasıl açılır, nasıl görüntülenir, üzerinde bir iki basit işlem nasıl yapılır gibi şeyleri öğreneceğiz. (Linux için opencv paketini yükleyip, en altta verdiğim parametrelerle derleme yapmanız yeterli. Windows için biraz arama yapmanız gerekecek :) )

Öncelikle her yazıda yaptığımız gibi, konu ile ilgili struct‘ın ne olduğunu görelim. Açtığımız resimler ile ilgili bilgiler (IplImage *) struct’ında tutulur. Şu an yapacağım kopyala yapıştırdan gözünüz korkmasın, hepsini bilmek zorunda değilsiniz. width, widthstep, height, nChannels, depth ve imageData‘yı bilmeniz yeterli, bunlar birazdan açıklanacak.

Continue Reading »

Bu yazı toplamda 5394, bugün ise 1 kez görüntülenmiş

16 Comments

GLib Tek Bağlı Liste ile Örnek Proje, Kelime Sayacı

Açık Kaynak, Programlama, tutorial, Uzun Kod İçerikli, ytulinux

Geçen gün farketmemişim, glib kütüphanesinde tek bağlı liste de bulunuyormuş. Onu da anlatmadan geçmenin pek mantıklı olmayacağını düşündüm, ancak çift bağlı liste ile çoğunlukla aynı özellikleri taşıdığı için örnek bir proje yapıp olayı onun üstünden anlatmak daha mantıklı olacaktır.

Önceki makaleyi okumayanların, http://www.huseyinalb.com/glib/ adresinden okumalarını tavsiye ediyorum. Orada anlatılan bir çok şeyi burada atlayacağımdan emin olabilirsiniz :)

Öncelikle GSList, yani tek bağlı listenin struct‘ına bakalım.

typedef struct {
gpointer data;
GSList *next;
} GSList;

Görüleceği üzere, çift bağlı listeden tek farkı kendisinden önceki elemana atıf vermemesi.

Örnek projemiz, bir dosyadan alınan yazıda bulunan kelimeleri sayıp, miktarlarına göre sıralamak. Öncelikle, önceki anlatımdan bunun önemli bir farkını belirtmekte yarar var. Bu sefer glib’de bulunan hazır fonksiyonlardan tamamıyla faydalanmamız pek mümkün değil, çünkü kendi tanımladığımız bir struct’ı kullanmak zorundayız.

typedef struct
{
char * kelime;
int miktar;
} kelimeTip;

Bu struct’ta kelimeler ve bu kelimelerden kaç tane bulunduğu saklanacak. Okuduğumuz yazıdan her gelen kelime, listede aranacak, eğer zaten varsa listedeki kelimenin miktarı arttırılacak, eğer yoksa listeye eklenecek. Bunun için gereken fonksiyonların prototiplerini yazmak gerekirse;

Continue Reading »

Bu yazı toplamda 4460, bugün ise 0 kez görüntülenmiş

3 Comments

GLib Çift Bağlı Liste Nasıl Belgesi

Açık Kaynak, Programlama, tutorial, ytulinux

Merhabalar, uzun bir süre sonra kaldığım yerden yazmaya devam etmenin kıvancını duymaktayım :)

Bundan bir kaç saat önce, hash tablosu kullanmak için bir kütüphane aramaya başladım ve glib-2.0 kütüphanesinin, standartlaşmış ve c programlama dili ile veri yapılarına takla atlatmak üzere donatılmış olduğunu farkettim. Kısa bir flashback yaşayıp, boşa geçen yıllarımı yadettikten sonra, bu konuda bir nasıl belgesi aramaya başladım.

http://www.scribd.com/doc/3499572/Manage-C-Data-Using-the-GLib-Collections

adresindeki kitabı buldum ki henüz bir kaç sayfasına bakmış olmama rağmen oldukça beğendim.

http://www.gtk.org/api/2.6/glib/

adresinde de bu kütüphaneye ait atıf kütüphanesini (Reference Library) buldum. Ancak demin linkini vermiş olduğum kitap eğer sayılmazsa, bir çok alanda yazılmış tonlarca dökümantasyona kıyasla bu konuda pek anlatım bulamadım.

Bu kütüphanedeki yapıları kullanabilir hale gelmek istiyorum, tabi bunu yaparken belgelendirmesini de yapıp topluma faydalı sayacan sevecen bir genç olmamak için herhangi bir nedenim yok.

Hedefim olabildiğince her veri yapısını kullanmayı gösteren ayrı ayrı nasıl belgesi yazmak, umarım sıkılıp bu belgelendirmeyi yarıda bırakmam.

Continue Reading »

Bu yazı toplamda 3998, bugün ise 0 kez görüntülenmiş

4 Comments