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

  • fufko

    fufko

    27 ŞUBAT 2006
  • ThreadBanger

    ThreadBanger

    2 Mart 2007
  • TrenchTech Computer Repair Tutorials

    TrenchTech C

    19 EYLÜL 2014