SORU
1 Kasım 2009, Pazar


C fopen vs açık

Kullanmak istediğiniz herhangi bir nedenle (sözdizimsel olanlar hariç)

FILE *fdopen(int fd, const char *mode);

ya

FILE *fopen(const char *path, const char *mode);

yerine

int open(const char *pathname, int flags, mode_t mode);

Linux ortamında C kullanırken?

CEVAP
1 Kasım 2009, Pazar


Açmak yerine fopen kullanmak için dört ana nedeni vardır.

  1. fopen bir sürü open ile ne yaptığını daha hızlı olabileceğini tampon IO sağlar.
  2. fopen Eğer dosya varsa programınızı hiç Unix olmayan bir ortama taşıdık ise çok yararlı olabilir hangi ikili modda açılırsa değil line çeviri bitiş yapar.
  3. FILE * fscanf ve diğer istasyonu. fonksiyonları kullanma yeteneği verir.
  4. Kodunuzu bir gün sadece ANSI C destekleyen başka bir platforma taşıdık olabilir open işlevi desteklemiyor.

Bence line çeviri daha sık biten size yardımcı olur daha bu şekilde alır, ve fscanf ayrıştırma kaçınılmaz olarak onu daha işe yarar bir yana atarak sonunda o kadar zayıf.

Ve C destekleyen en platformlar open bir işlevi var.

Bu tampon soru bırakır. Özellikle okuma veya bir dosya sırayla yazıyoruz yerlerde, tampon desteği gerçekten yararlı ve büyük hızlı bir gelişme. Ama veri orada beklediğiniz zaman dosya sonu gelmez ilginç bazı sorunlara yol açabilir. fclose fflush hatırlamak için uygun zaman.

Eğer istiyor yapıyorsan, tampon kullanışlılığını hızla aşağı gider.

Elbette, benim önyargı olduğunu meyilli bir çalışma ile yuva bir sürü, ve orada aslında gerçekten istediğin için yapmak engellenmeyen İO (FILE * tamamen başarısız desteklemek için herhangi bir makul bir şekilde) hayır tamponlama ve genellikle karmaşık ayrıştırma şartları gerçekten benim renk algılamaları.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • akalyne

    akalyne

    13 Mayıs 2009
  • FullMag

    FullMag

    15 ŞUBAT 2007
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008