プログラムの TTY をエミュレートする方法
プログラムが stdin と対話するとき、それが端末であるかどうかに基づいて動作が異なる場合があります。またはパイプ。これを解決するには、「疑似端末」 (Pty) エミュレーションと呼ばれる手法を使用して、プログラムを TTY として見せることができます。
1 つの実装は、forkpty 関数を使用して、以下の C コードで提供されています。このコードは、疑似端末をセットアップし、子プロセスをフォークして目的のコマンドを実行し、その出力を継続的に stdout に転送します。
#include <signal.h> #include <stdlib.h> #include <sysexits.h> #include <unistd.h> #include <util.h> pid_t child = 0; void sighandler(int signum) { if (child > 0) { killpg(child, signum); exit(signum); } } int main(int argc, char *argv[]) { if (argc 0 && FD_ISSET(master, &fds)) { bytes_read = read(master, buf, buf_size); if (bytes_read <p>この手法を統合することで、プログラムは他のアプリケーションと効果的に対話できるようになります。端末を通じて操作されていました。</p></util.h></unistd.h></sysexits.h></stdlib.h></signal.h>
以上がプログラムがターミナル内で実行されていると思わせるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。