1

ここに記載されている方法で疑似端末を作成しました: http://lists.apple.com/archives/student-dev/2005/Mar/msg00019.html

端末自体はうまく機能しました。とにかく問題は、端末が子プロセスに切り替えられないことです。たとえば、 で起動bashし、内でNSTask実行すると自動的に停止します。ftpbash

ftp
ftp
ftp> 
[1]+  Stopped                 ftp
bash-3.2$ 

ftpそして、 withを続けようとするとfg、静かに終了します。( Activity Monitorで確認しました)

fg
fg
ftp

bash-3.2$ 

fg
fg
bash: fg: current: no such job
bash-3.2$ 

制御を子プロセスに切り替えるには、もう少しインフラストラクチャ(疑似端末を完成させる)が必要だと思います。これを行うには何が必要ですか?

4

2 に答える 2

1

デバイスを作成することで、最終的にこれを行うことができましたpty。プログラムを「端末」のように動作させるには、対話型端末で実行する必要があり、それには疑似端末デバイスが必要です。

残念ながら、私の知る限り、NSTaskどの機能もサポートしていないためpty、BSD レイヤーに取り掛かる必要がありました。

これが私の現在の実装です: https://github.com/eonil/PseudoTeletypewriter.Swift

sudoうまく機能しており、機能sshするはずだと思います。

于 2015-01-12T13:32:50.667 に答える
0

MFTask と PseudoTTY.app (Mac OS X 10.6 で動作) のソース コードを見てください。

参照: http://www.cocoadev.com/index.pl?NSTask

pty コマンド ライン ツールについては、こちらを参照してください。

于 2011-09-26T12:32:22.070 に答える