FILE Keyword

Kategori: C , 29 Haziran 2019 , JanFranco


C'de dosya işlemlerinde, bir dosyayı açarken FILE anahtar kelimesi kullanılır. Bir örnek verelim:


int main(){

    FILE *fp;

    fp = fopen("myFile.txt", "r");

    if(fp == NULL){
        printf("Error while opening the file");
        exit(1);
    }    

    return 0;
}
FILE anahtar kelimesi bu şekilde kullanılır. Mantığından bahsetmek gerekirse, ilk olarak file descriptor'ın ne olduğunu bilmemiz gerekli. İşletim sisteminde hangi dosyanın kullanımda olduğunun, açık olduğunun kayıtlı olduğu bir yapı mevcuttur. Biz buna tablo diyelim. Örneğin bir txt dosyasını açtığımızda 102 numara ile bu tabloya kaydı yapılır. Daha sonra başka bir txt dosyasını açtığımızda 103 numara ile bu tabloya kaydı yapılır. 102 numaralı txt dosyasını kapattığımızda numarası silinmiş olur. C'de low level bir fonksiyon olan open fonksiyonu ile bir dosya açtığımızda, fonksiyon bize bu dosyanın tabloya kaydoluğu integer değeri döndürür. Bu return değerine file descriptor denir. Burada kullandığımız FILE pointer'ı ise, file struct'ını işaret eden bir pointerdır. fopen gibi high level fonksiyonlar, file descriptor yerine bir struct dönerler. Bu struct, file descriptor'ın gelişmiş hali olarak düşünülebilir. Daha fazla özellik barındırır. FILE pointer bu struct'ı işaret eder. Eğer dosya açımında bir hata olursa FILE pointer'ı NULL olur. Böylelikle hata kontrolü yapabiliriz.


Sonraki Yazı: fopen(), fclose()
Yorumlar

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