Şu an üzerinde çalıştığımız projede, hazırlanan web sayfasına bir usb security token yardımıyla giriş yapılmasına karar verdik. Bu esnada 3-4 farklı firmadan örnek olması amacıyla development kit getirttik. Bunları inceleyip, ihtiyaçlarımızı karşılayacak ürünü seçmek benim görevimdi. Bu ürünlerin API'leri arasından gezinirken, dur bakalım bir de python ile kodlayım dedim. C#'dan Pascal'a, Java'dan C'ye kadar bir çok dil için API ve ya örnek mevcuttu. Bu noktada, C için verdikleri kütüphaneyi (so uzantılı dosya), ctypes kullanarak python ile kullanma yolunu keşfettim. ctypes ile mevcut C için kullanılan binary kütüphane dosyalarını, python içinde de kullanabiliyorsunuz. Hemen örnek ile pekiştirelim;
]$ python
>>> import ctypes
>>>libc=ctypes.cdll.LoadLibrary('/lib/libc.so.6')
>>> libc.printf("Necati Demir // Python ile ctypes testi\n")
Necati Demir // Python ile ctypes testi
40
Çok basit şekilde, c ile kullandığımız printf komutunu kullandık. Ayrıca C fonksiyonlarında parametrelerin tipi belirtilir python'dan farklı olarak; f(double a) gibi. Burada da imdadımıza ctypes'in temel veri tipleri yetişiyor.
Örneğin;
>>> >>> libc.printf("An int %d, a double %f\n", 1234, ctypes.c_double(3.14))
An int 1234, a double 3.140000
31
Yukarıdaki örnekte, c_double ile bir double değeri gönderdik fonksiyona.
Ayrıntılı bilgiyi sitedeki kaynaktan bulabilirsiniz.
Eylül 14, 2007
python ctypes; dinamik kütüphaneleri python ile kullanın
Kaydol:
Kayıt Yorumları (Atom)

1 comments:
Güzel Yazılar
Web Site Tasarım
Yorum Gönder