CodeBlanks Logo Icon CodeBlanks

ctypes.CDLL

ctypes.CDLL ile yerel kütüphane yüklemeyi öğrenirsin.

ctypes.CDLL nedir?

ctypes modülü Python'dan yerel C kütüphanelerini çağırmayı sağlar. CDLL sınıfı paylaşımlı bir kütüphaneyi yükler ve içindeki fonksiyonları kullanıma açar.

CDLL(None) varsayılan C kütüphanesini (Linux'ta libc) yükler. Yüklenen nesne üzerinden libc.abs(-7) gibi fonksiyonları çağırabilirsin. Dönüş türü varsayılan c_int'tir. Bu, Python ile C arasında köprü kurmanın en doğrudan yoludur ve sistem programlamada yaygındır.

Fonksiyon çağrısı

Bir CDLL nesnesi üzerinden fonksiyonlara nokta ile erişirsin: libc.abs(-7). Python argümanları otomatik olarak C türlerine çevirir.

Varsayılan dönüş türü c_int'tir. Eğer fonksiyon başka bir tür döndürüyorsa (örneğin size_t), restype ile belirtmen gerekir. Aksi halde dönüş değeri yanlış kırpılabilir. Fonksiyon çağrısı, C'deki gibi senkron ve hızlıdır; ama tür uyumsuzluğu çöküşe yol açabilir.

Uygulama CDLL ile abs çağır

import ctypes ile modülü içe aktar. ctypes.CDLL(None) ile varsayılan C kütüphanesini yükle. libc.abs(-7) çağrısının sonucunu bir değişkene ata ve yazdır.

Başlangıç kodu

main.py
# libc yükle
# abs fonksiyonunu çağır
# sonucu yazdır

Örnek çözüm

main.py
import ctypes

libc = ctypes.CDLL(None)
result = libc.abs(-7)
print(result)

Beklenen çıktı

7

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 CDLL kavramlarını eşleştir

Kavram Anlamı
CDLL Kütüphane yükler
None Varsayılan libc
.abs(-7) Fonksiyon çağrısı
c_int Varsayılan dönüş

2 CDLL(None) ne yükler?

main.py
import ctypes
libc = ctypes.CDLL(None)
  • Varsayılan C kütüphanesini Doğru cevap
  • Python standart modülünü
  • Bir hata fırlatır
  • Boş bir nesne

Açıklama: CDLL(None) sürecin varsayılan C kütüphanesini yükler.

3 CDLL çağrısını tamamla

Soru
libc = ctypes.____(None)
Cevap
libc = ctypes.CDLL(None)

Açıklama: CDLL(None) varsayılan C kütüphanesini yükler.

Uzman bölümündeki tüm dersler