mintty上でのC言語の関数 isatty(fileno(stdout))

MSYS/MinGWでminttyを使っています。mintty上でC言語の関数 isatty(fileno(stdout)) を実行すると、0(端末ではない)が返ってきてしまいます。Windowsのコマンドプロンプトから同じ物を実行すると1が返ってきます。
minttyを端末として認識させる設定はないでしょうか?

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2011/09/23 13:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:a-kuma3
    mintty なので、関係無いとは思うんですが CYGWIN 環境変数で tty を on にした環境で mintty を起動する、というのでは駄目でしょうか?
  • id:neuromancer_sho
    a-kuma3さん
    ありがとうございます。
    それは
    CYGWIN=tty
    という設定でしょうか?
    それでしたら、たしかそうなっていたと思いますが、来週確認してみます。
  • id:a-kuma3
    >CYGWIN=tty
    そのつもりで書きました。でも、ただの思いつきですよ。

    http://www.cygwin.com/cygwin-ug-net/using-effectively.html
    >>
    DOS box を unix っぽく使うためには、CYGWIN=tty したまえ。
    じゃなければ、xterm のような mintty を使うとか。
    <<
    とあるので、terminal emulator と CYGWIN=tty は効きどころが違うんだろうな、と思って。

    そこそこ探してみたんですが、「Windows では pty の実装はきちんとできまへん」みたいのしか
    見つからなくて。
    自分がぶち当たったら、isatty じゃなくて、tty_name を使うように
    変えちゃうかなあ、という感じなんですが、gdb の話ですもんね...
  • id:neuromancer_sho
    gdbのソースを書き換えて、isattyのチェックを無視させてみたら、今度は
    Redirection is not supported.
    と言われてしまいました。どこかにリダイレクトさせてるから端末として認識してないみたいです。

    ちなみにttyname関数はMinGwには無いようです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません