SORU
11 Kasım 2009, ÇARŞAMBA


Neden basit bir beşgen kullanmaktır bir yeni satır biçim dizesi sürece aramadan sonra flush değil mi?

Neden printf bir yeni satır biçim dizesi sürece aramadan sonra flush değil mi? Bu POSIX davranış mı? Nasıl hemen her zaman floş, basit bir beşgen kullanmaktır alabilir miyim?

CEVAP
11 Kasım 2009, ÇARŞAMBA


stdout akış tamponlu, bu yüzden tek bir yeni satır (ya söyledi o zaman) ulaştıktan sonra tampon ne gösterecektir. Yazdırmak için bir kaç seçenek var hemen:

Stderr fprintf yerine kullanarak yazdırmak için:

fprintf(stderr, "I will be printed immediately");

İhtiyacınız olan her an floş stdout fflush kullanarak:

printf("Buffered, will be flushed");
fflush(stdout); // Will now print everything in the stdout buffer

Edit: Andy Ross yorum aşağıda da setbuf kullanarak: stdout üzerinde ara belleğe alma devre dışı bırakabilirsiniz

setbuf(stdout, NULL);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FILIPeeeK

    FILIPeeeK

    22 Mayıs 2006
  • LearnCode.academy

    LearnCode.ac

    20 Aralık 2012
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010