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

  • Fraser Raft

    Fraser Raft

    9 Mart 2010
  • Jimmie Jones

    Jimmie Jones

    16 Kasım 2007
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008