tmpfile(), tmpnam()

Kategori: C , 30 Haziran 2019 , JanFranco


tmpfile fonksiyonu geçici yani temp bir dosya oluşturur. tmpname fonksiyonu ise unique, yani eşsiz bir dosya ismi üretir. Fonksiyon prototipleri:


FILE *tmpfile(void);
char *tmpnam(char *s);
tmpfile fonksiyonu bir file pointer return eder. tmpfile fonksiyonu ile oluşturulan temp dosyalar, fclose ile kapatıldığında sistemden silinir. Bir örnek yapalım:

#include <stdio.h>

int main(){

    FILE *temp;
    char s[128];

    temp = tmpfile();

    fprintf(temp, "JAN FRANCOOO\n");
    rewind(temp);
    fscanf(temp, "%s", s);

    fclose(temp);

    return 0;
}
Geçici bir temp dosyası oluşturduk ve içerisine verilerimizi yazdık. Daha sonra rewind ile tekrar dosyanın başına döndük ve okuma işlemi yaptık. fclose ile dosyayı kapattığımızda, dosya otomatik olarak silindi. Bahsetmedik fakat, fmpfile açılan dosyalar "r+b" modunda açılmakta. tmpname fonksiyonu ile bir örnek yapalım:

#include <stdio.h>

int main() {

    char filename[L_tmpnam];
    char *another_filename;

    if (tmpnam(filename) != NULL)
        printf("We got a temp file named: \"%s\"\n", filename);
        
    another_filename = tmpnam(NULL);
    printf("We got another temp file named: \"%s\"\n", another_filename);

    return 0;
}
Bu şekilde iki farklı kullanımı vardır. Output:

We got a temp file named: "\s9kk."
We got another temp file named: "\s9kk.1"


Sonraki Yazı: setbuf(), setvbuf(), fflush()
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın