Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇1663:
SSHでのプログラムの実行 [なかにし] 11/25 17:17

 └◇1665:Re:SSHでのプログラムの実行 [はじめ] 11/25
  └◇1668:Re[2]:SSHでのプログラムの実行 [なかにし] 11/26 <


1663● SSHでのプログラムの実行[ なかにし ] 2003 11/25 17:17
突然で失礼します。

現在、Visual C++(6.0)で開発したプログラムを実行しているのですが、
SSHで接続して実行すると、標準入力/出力が正常に再現されません。

例えば、
int main(){
int tmp;
printf("input number>");
scanf("%d",&temp);
printf("you input:%d\n",temp);
}
のようにして、実行すると、
----
input number>3
you input:3
----
を期待していたところ、
gccでコンパイルした場合はその通りになるのですが、
Visual C++でコンパイルすると、
----
3
input number>you input:3
----
となってしまいます。

ちなみに、sshではなくローカルで実行した場合、
環境変数に"tty"が含まれるとおかしくなり、
含まれないと正常に実行されます。
sshでログインしている場合には環境変数によらず失敗します。

もちろんcygwinからではなくms-dosプロンプトから実行すれば、
正常に動きます。

何とか開発環境はVisual C++にしたまま
解決する方法はないでしょうか?

よろしくお願いいたします。
スレッド一覧


1665● Re:SSHでのプログラムの実行[ はじめ ] 2003 11/25 19:33
あてずっぽです。あらかじめごめんなさい。
ひとつめの printf() の後、scanf() の前、つまりこれらの
間に fflush() を入れてみたらどうかなと思いました。
スレッド一覧


1668● Re[2]:SSHでのプログラムの実行[ なかにし ] 2003 11/26 08:17
おかげで何とか出力順序はできるようになりました。
(Back Spaceを使うとおかしな挙動はしますが)。

fflush(stdout)で良いようですね。
fflushで検索をかけるとけっこうひっかかってきました。
cygwinに限定しないで探せばよかったようです。

貴重なアドバイスをありがとうございました。
スレッド一覧

早田のホームページへ
CGIROOM