BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <stdio.h> > tmpnam

tmpnam() fonksiyonu

Bildirim

char* tmpnam(char *filename);

errno_t tmpnam_s(char *filename_s, rsize_t maxsize); (C11)

Açıklama

Benzersiz bir geçerli dosya adı oluştururarak dosya adını filename ile gösterilen parametreye atar. Dosya adı uzunluğu L_tmpnam değerinden büyük olamaz. Fonksiyon, TMP_MAX değeri kadar benzersiz dosya adı üretebilir, ancak bunların bazıları veya tümü dosya sisteminde kullanımda olabilir ve bu nedenle uygun dönüş değerleri olmayabilir.

Tmpnam_s() fonksiyonu aynı işlemleri yapar. Farklı olarak, uzunluğu L_tmpnam_s değerinden uzun olmamak üzere, en az TMP_MAX_S değeri kadar dosya adı oluşturulabilir. açılabilir. Çalışma zamanında aşağıdaki hatalar tespit edildiğinde yüklenmiş olan kısıtlayıcı işlem fonksiyonu çağrılır:

  • filename_s parametresi NULL bir işaretçi ise,
  • Maxsize parametre değeri RSIZE_MAX değerinden büyük ise,
  • Maxsize parametre değeri oluşturulan dosya adından küçük ise.

Parametreler

filename : Önerilen geçici adın bir karakter dizisi olarak kaydedileceği en az L_tmpnam kadar byte alabilecek kapasitedeki bir karakter dizisi işaretçisidir. Eğer NULL bir işaretçi atanırsa, dahili statik ara belleği gösteren bir işaretçi döndürülür.

filename_s : Önerilen geçici adın bir karakter dizisi olarak kaydedileceği en az L_tmpnam_s kadar byte alabilecek kapasitedeki bir karakter dizisi işaretçisidir.

maxsize : Fonksiyonun yazabileceği maksimum karakter sayısıdır.

Dönüş değeri

Tmpnam() fonksiyonu, filename parametresi NULL bir işaretçi değilse, filename parametresini geri döndürür. Aksi takdirde, dahili statik ara belleği gösteren bir işaretçi geri döndürür. Eğer fonksiyon uygun bir dosya adı oluşturamazsa, NULL bir işaretçi değeri geri döndürür.

Tmpnam_s() fonksiyonu, başarı durumunda 0 değeri geri döndürür ve dosya adını filename_s parametresine yazar. Hata durumunda, sıfır olmayan bir değer döndürür ve filename_s[0] adresine boş bir karakter ('\0') yazar (filename_s boş bir karakter içermiyorsa ve maxsize 0 değilse ve RSIZE_MAX değerinden büyük değilse).

Örnek


#include <stdio.h>

int main(void)
{
    char cdizi[L_tmpnam];

    printf("Geçici dosya adı: %s\n", tmpnam(cdizi));

    printf("Geçici dosya adı: %s", tmpnam(NULL));

    return 0;
}

Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:

Geçici dosya adı: \s8l4.
Geçici dosya adı: \s8l4.1

Yukarıdaki program, tmpnam() fonksiyonu ile 2 adet geçici dosya oluşturarak dosya adlarını ekrana yazar.