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

  • RD

    RD

    19 NİSAN 2006
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014
  • SDSARG3

    SDSARG3

    14 Mart 2009