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

  • Breno Rises

    Breno Rises

    7 Ocak 2014
  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • Migs351

    Migs351

    3 HAZİRAN 2007