• 締切済み

printfについて質問です。

printfについて質問です。 printf("Hello world!")とprintf("Hello world!\n")をUNIXS上で 実行時間を比較した場合、\nを入力しないほうが実行時間が遅くなりました。 その理由を教えてください。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

ついでにいうと「そもそもどんなプログラムなのか」とか「printf でどこに出力したのか」も問題になりえますね>#3.

すると、全ての回答が全文表示されます。
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.3

>実行時間を比較した場合 実行時間をどんな方法で比較したのですか? それぞれ何回実行して平均、最小、最大を計測したのですか? 実行時の他のプロセスやスレッドの状態は? システム全体の状態は? 単に1回実行しただけなら比較になりません。

すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.2

flash ではなくて fflush(stdout) です。 質問者さんを混乱させないようにしましょう。

すると、全ての回答が全文表示されます。
  • BuriBuri4
  • ベストアンサー率28% (150/525)
回答No.1

Unixではstdoutはストリームに割り当てられており、ストリームはバッファを持っています。 バッファに溜まったデータがデバイスに書き出されるまでには若干タイムラグがあり\nを付けない場合にはそのタイムラグが拡大します。 \nを付けても即時書き出される訳ではないので強制的に書き出したい場合にはflash()を使います。

すると、全ての回答が全文表示されます。

関連するQ&A