C++ コンパイルされたプログラムをバックグラウンドで実行し、必要に応じて入力を送信します。

C++ コンパイルされたプログラムをバックグラウンドで実行し、必要に応じて入力を送信します。

次の構造を持つUNIX環境用にC ++で書かれたコンパイルされたプログラムがあります。

int main(){
...
LoadEngine()
...
while(1){
    std::cin >> buffer;
    ...
    ExecuteFunction(buffer);
}
}

エンジンのロードにはかなり時間がかかるため、まずバックグラウンドでプログラムを起動してから、必要に応じて入力を送信してみました。

最後に標準のアンパサンドを追加してプログラムを実行すると、プログラムはバックグラウンドで実行されているように見えず、代わりに停止します。標準::神コンソールから入力を受け取るまで、コンソールから入力を受信して​​停止します。

プログラムがバックグラウンドで継続的に実行され、入力を受け取り、必要に応じて機能を実行させるにはどうすればよいですか。

編集する:最終製品は、音声を認識し、認識された単語に基づいて特定の動作を実行できる小型デバイス(RaspberryPi)です。私のプログラムは、単語入力に基づいてタスクを実行するデバイスの一部であり、単語入力は変数に対応します。バッファー上記のコードスニペットから。

だから標準::神Partialは、バックグラウンドプロセスでエンジンをロードするために部分コードが開始され、設計されたすべての操作を実行するかどうかをテストするために使用されるダミーコード行です。

編集2:達成する目標を明確にするために、プログラムは音声認識装置から入力を受け取り、それを実行します(たとえば、入力から音声を合成し、LEDに信号を送信するなど)。テキスト入力は、コンソール(私のコードが現在これを行っている)から直接インポートするか、私が理解していない他の方法でインポートできます。入力が従う唯一のポイントはでなければならないテキストであり、他の音声認識プログラム(他の開発者が処理しました)から送信されました。したがって、具体的な方法は明記されていません。私が心配する必要があるのは、テキスト入力で関数を実行するプログラムです(例:バッファーコードスニペットから)。したがって、一般的な構造は次のようになります。

Int main(){
LoadEngine()
while(1){
    buffer = ReceiveInput();
    ExecuteFunction(buffer);
 }}

どこ入力()を受け取りますそのうちのいくつかは現在、次のように実装されています。標準::神。実際、どのような方法でも最初にエンジンを一度だけロードすればプログラムを実行できる。機能の実行入力からデバイス終了まで。

ベストアンサー1

そうは思えません。この場合、通常はネットワークポートを受信し、接続を受け入れ()してデータを読み取り、必要な操作を実行します。その後、データを送信するにはクライアントアプリケーションも必要です。これは通常、バックグラウンドアプリケーションがどのように機能するかです。

おすすめ記事