問題タブ [tty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1998 参照

c - tty からの入力を強制する方法

passwdsshのようにリダイレクトされた stdin パイプではなく、tty からのみユーザー入力を読み取るプログラムを作成したいと考えています。アプローチはありますか?

どうもありがとう

0 投票する
5 に答える
7267 参照

linux - Linuxコンソールで実行されているのかsshセッションで実行されているのかを見分ける方法は?

Linuxコンソールから直接実行した場合に異なる動作をする必要があるアプリケーションがあります。したがって、ユーザーがSSHに接続してFooBarを実行する場合、またはユーザーがコンソールに移動して直接ログインしてFooBarを実行する場合は、別のことを実行する必要があります。

これら2つのシナリオの違いを伝えるために、どのC APIを呼び出す必要がありますか?「tty/pts」情報(「psaxf」を実行したときに表示される情報など)を確認する必要があると思っていましたが、それが最善の解決策であるかどうか、またどのAPIを呼び出すかはわかりません。その情報を取得します。

ヒントをいただければ幸いです。:)

0 投票する
5 に答える
5073 参照

c - Linux シリアル ポートの正しい初期化シーケンス

Linux でシリアル ポート、特に ttyUSB を使用する必要があるアプリケーションを作成しました。読み書き操作は、標準の select()/read() ループと write() で実行され、おそらく何も問題はありませんが、初期化コード (またはその一部の欠如) が tty サブシステムの何かを損傷します。ここにあります:

もう 1 つtcsetattr(_fd, TCSANOW, &_termios)はデストラクタにありますが、これは無関係です。

この用語の初期化の有無にかかわらず、アプリケーションの終了後にシステムで奇妙なことが起こります。プレーンcat(またはhd)が毎回何も出力しないか同じものをすぐに終了する場合があります。ポートに確実に送信されるデータを待機して表示しない場合もあります。そしてclose()read()毎回ではありませんが)usb-serial.c を参照しWARNINGて dmesgに奇妙なメッセージを出力します。

ハードウェアとファームウェアを何十回も (別のマシンでも) チェックしましたが、意図したとおりに動作していると確信しています。さらに、同じメッセージを何度も出力するようにファームウェアを削除しました。

何も破壊せずにシリアルポートを使用するにはどうすればよいですか? ありがとう。

0 投票する
3 に答える
552 参照

linux - Linux: IPC (パイプなど) を使用せずに別のプロセスの出力を読み取ることはできますか?

Linux で、別のプロセスの出力 (stdout および stderr から) を認識せずに読み取ることは可能ですか? では、バックグラウンドでプロセス A を実行していて、プロセス B がその出力を読みたいとしましょう。それは可能ですか? パイプやスクリーンプログラムが使えません。/proc/xxx/fd や /pts/x コンソールなどから読み取ろうとしましたが、これまでのところ何も機能しませんでした。

0 投票する
4 に答える
3568 参照

c - Linux TTY がプロセス グループを制御しているかどうかを確認する方法

だから私は tty (/dev/tty5 としましょう) を持っていて、それが現在プロセス グループまたはセッションの制御 tty であるかどうか、または現在所有されていないかどうかを知りたいです。POSIX には、tcgetpgrp() と tcgetsid() という 2 つの API 関数があり、どちらも呼び出し元が tty を制御する tty を持っている場合にのみ機能します。 tcgetsid() の要点はまったくわかりません)。

端末が現在プロセスの制御端末であるかどうかを C から正常な方法で検出する方法を誰かが提案していますか? 私は Linux しか気にしていないので、Linux 固有の API が必要な場合は問題ありません。

0 投票する
8 に答える
15039 参照

c - C write() は close(fd) が呼び出されるまでデータを送信しません

したがって、USBシリアルポートを介して「HELLO」を送信する次のテストコードがあります。

プログラムは正常に実行され、"HELLO" が送信されますが、問題が 1 つあります。「HELLO」は、write() 関数が呼び出されたときに送信されるのではなく、ファイル記述子が閉じられたときに送信されるようです。この理論をテストするために上に sleep(5) 行を追加しましたが、確かに、プログラムが実行されてから 5 秒後に「HELLO」が送信されます。close() コマンドの代わりに write() コマンドの直後に「HELLO」を送信するにはどうすればよいですか?

0 投票する
3 に答える
9611 参照

linux - ubuntuでnasm(アセンブリ)を使用してキーボードから1文字の入力を読み取るにはどうすればよいですか?

ubuntuでnasmを使用しています。ちなみに、ユーザーのキーボードから単一の入力文字を取得する必要があるため (プログラムが y/n を要求する場合など)、キーを押して Enter キーを押さずに、入力した文字を読み取る必要があります。私はそれをたくさんグーグルで検索しましたが、私が見つけたものはすべてint 21h、「セグメンテーション違反」を引き起こすこの行 ( ) に何らかの形で関連していました。単一の文字を取得する方法、またはこのセグメンテーション違反を克服する方法を理解するのを手伝ってください.

0 投票する
2 に答える
1957 参照

console - (リモート)ターミナルセッションからキーが押されるのを待って取得する方法はありますか?

私はjavaとphp(ゼロから)でいくつかのANSIのもの(色など)をいじっており、基本的にキーが押されるのを待つ方法を見つけようとしています。メインイベントループの最後に次の擬似コードのようなものが必要です。

しかし、ユーザーがEnterキーを押した後にのみ、STDINでキーを押すことができるようになるため、過去2日間に試したすべてが失敗します。

どの言語で答えるかはそれほど重要ではありませんがjava、、、、php昔ながらの、cまたはc#最も優れていると思います。これらの4つの言語すべてに移植する必要があるため、本当に洗練されたライブラリを使用することはできません。telnetまたは接続を介して作業しsshますが、これまでの私の調査では、ローカルマシンで作業している場合を除いて、それは不可能であることが示されています。

私が間違っていることを証明してください。

0 投票する
1 に答える
2021 参照

java - Java を使用した永続的なローカル tty セッション

タブ機能「コード補完」と質問があるWebシェルクライアントを開発しています。1 つのセッションで複数のコマンドを実行できるローカル tty 永続接続を開く方法を誰もが知っています。なにか提案を?よろしく

0 投票する
1 に答える
1797 参照

linux - TTYを使用する割り込み駆動型ドライバー?

私はLinux用のドライバー開発の初心者です...。シリアルポートにアクセスするためにTTYを使用してSMSドライバー(シリアルポートからモデムへのATコマンド)を開発しています。ドライバーはCで書かれています。

設計では、モデムからドライバへのメッセージは、次の2つのイベントによってトリガーされる可能性があります。

1)ドライバーによって発行されたATコマンドに応答するステータス(つまり、予期されるメッセージ)

2)新しいSMSの表示(つまり、予期しないメッセージ)

私は2つのスレッドを計画しています。1つはTTYへの書き込み用で、もう1つはTTYからの読み取り用です。読み取りスレッドが着信文字でウェイクアップするようにTTYを構成することは可能ですか(つまり、読み取りスレッドはイベントによってトリガーされ、ポーリングに基づいていません)?

よろしく、Witek