CodeBlanks Logo Icon CodeBlanks

dlclose

  • C kursu
  • İleri seviye
  • Ders 51/83
  • 5 dk

dlclose ile kütüphaneyi kapatmayı öğrenirsin.

dlclose nedir?

dlclose, dlopen ile alınan tanıtıcıyı kapatır. Referans sayısını azaltır; sıfıra inince kütüphane bellekten kaldırılır. int r = dlclose(h); çağrısı başarıda 0, hatada -1 döner.

Kapatma, kaynak sızıntısını önler. Kütüphane birden çok kez dlopen ile yüklenmişse her çağrı için bir dlclose gerekir. Açık tanıtıcılarla çalışmaya devam etmek güvenli değildir; önce işleri bitir, sonra kapat. Test için printf("kapandı\n") yazdırmak yeterlidir.

Yükle-kapat deseni

En basit akış: void *h = dlopen(NULL, RTLD_LAZY);, if (h) dlclose(h);, printf("kapandı\n");. Kapatma çağrısından önce sembol işlemlerinin bittiğinden emin olmalısın.

Test için tanıtıcıyı hemen kapatıp ardından printf yapmak yeterlidir. Çıktı deterministiktir. Gerçek uygulamada dlclose dönüş değerini denetleyip hata varsa dlerror ile ileti alabilirsin. Birden çok kütüphane kullanıyorsan her biri için ayrı dlclose çağrısı yapmalısın.

Uygulama Kütüphaneyi kapat

void *h = dlopen(NULL, RTLD_LAZY); ile tanıtıcı al. if (h) dlclose(h); ile kapat. printf("kapandı\n"); ile yazdır.

Başlangıç kodu

main.c
#include <stdio.h>
#include <dlfcn.h>

// kütüphane yüklenir
// kapat
// yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <dlfcn.h>

int main(void) {
    void *h = dlopen(NULL, RTLD_LAZY);
    if (h) dlclose(h);
    printf("kapandı\n");
    return 0;
}

Beklenen çıktı

kapandı

Soru ve cevaplar

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

1 dlclose çağrısı

Soru
dlclose(____);
Cevap
dlclose(h);

Açıklama: dlclose, h tanıtıcısını kapatır.

2 dlclose parçalarını eşle

Kavram Anlamı
dlclose Tanıtıcıyı kapatır
0 Başarı
-1 Hata
referans sayısı Sayaç

3 dlclose başarılı olduğunda ne döner?

  • void
  • dosya tanıtıcı
  • 0 veya -1 Doğru cevap
  • void *

Açıklama: dlclose başarıda 0, hatada -1 döner.

İleri seviye bölümündeki tüm dersler