bin/shをシェルとして使用してnetcat経由でLinuxボックスにアクセスしています。私は小さなプログラムをコーディングしました。以下を抜粋してください。
printf("Enter command to exec \n");
fgets(abc,128,stdin);
....
何が起こっているのかというと、netcatを介してシェル内でプログラムを実行すると、実際にプログラムを終了するまで、「システムに送信するコマンドを入力してください」が出力されません。
./programの後に画面に最初に表示されるはずですが、奇妙なことに、実行時にprintfコマンドをスキップするかのように入力を受け取ります。私の入力はシステムに正常に送信されます(そして出力を印刷します)が、それ以外の場合は画面が空白になり、コーディングしたprintfsが表示されません。
ただし、プログラムを終了すると、シェルに戻る前に、すべてのprintfsが実際に(バッファリングされているかのように)表示されます。なぜこれが起こるのかについて何か考えはありますか?さらに情報が必要な場合はお知らせください。喜んでスレッドを更新します。
どうもありがとうございます