2017-07-28 1 views
0

github.com/kr/ptyパッケージを使用して、外部プロセスが生成されるための疑似TTYを作成しています。しかし、それらの端末サイズは端末エミュレータのウィンドウサイズよりも小さいようです(つまり、ncursesやその他の端末UIはxterm/Konsoleの左上隅にのみ描画されます)。他のプロセスの端末サイズ(ala `stty columns`)を設定していますか?

この問題を解決するアイデアの方法は、パッケージ自体になりますように私はPTYパッケージにバグを調達しているが、私はコード内(TTYの寸法を自分で設定することができれば、その周りの仕事が便利かもしれないとして)。

どうすればいいですか?

NBプロジェクトはGo(Golang)で書かれているので、理想的にはCまたはGoでこれを行うにはアドバイスが必要です。また、私が取り組んでいるプロジェクトは、クロスプラットフォームの互換性を重視しているので、必要なsyscallがOS特有のものかどうかを知ることは便利です。

答えて

0

解決策が見つかりました。新しい擬似TTYを作成することは間違ったアプローチでした。実際には、標準のGoライブラリを使用して、私が望むものを実現することができます。

cmd := exec.Command(name, parameters...) 

cmd.SysProcAttr = &syscall.SysProcAttr{ 
    Ctty: int(os.Stdout.Fd()) // set the TTY 
} 

// These must be the respective Std os.File as using a Reader/Writer 
// wouldn't work if you're trying to assign a TTY to your terminal 
// emulator. 
cmd.Stdin = os.Stdin 
cmd.Stdout = os.Stdout 
cmd.Stderr = os.Stderr 
関連する問題