私は、C で書かれた非常に基本的なプログラムをテストしていました。その全体を以下に示します。TCC によって生成された実行可能ファイルを実行しようとすると、printf() 呼び出しからの出力を実際に表示する前に、連続する fgets() ごとに入力を入力する必要があることに気付きました。
これは非常に紛らわしいので、標準の Windows コンソールで実行可能ファイルを実行してみることにしました。問題なく実行され、入力プロンプトと出力プロンプトが適切な順序で表示されました。
しかし、GCC でプログラムをコンパイルすると、Cygwin でコンパイルされた端末で正常に動作することに気付きました (mintty、rxvt でも同じ結果が得られました)。
なぜこれが起こっているのか、どうすればそれを止めることができるのか、誰か説明してもらえますか? Cygwin ベースの端末を使用しながら、Cygwin とは独立してプログラムをコンパイルしたいと考えています。
ありがとう!
int main()
{
char something[12];
printf("This printf() should be outputted before you are prompted for input: ");
fgets(something, sizeof something, stdin);
printf("You entered, %s", something);
}