0

私はCプログラミングの初心者で、プログラムを実行しているある端末から別の端末に入力を送信するコードを作成しようとしています(違いがあるかどうかはわかりませんが、telnetですプログラム)。その理由は、私がプログラムにコマンドを書き込んでいて、それが何らかのテキストを送ってしまうことがよくあるためです。私の意図は、メインターミナルの下の小さなターミナルでプログラムを実行し、このターミナルを介してコマンドを送信することでした.スタックオーバーフローで多くの質問を見て、このプログラムを書きましたが、うまくいかないようです。ここで聞いてください、私は何を間違っていますか?それがこのサイトにとって適切な質問でない場合は申し訳ありませんが、私が知っている最高のものです. これが私のコードです:

(また、あなたが持っているかもしれない提案をいただければ幸いです)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char command[1001];
    char px[1001 + 8 + 13 + 3] = "";
    char p1[8] = "echo | ";
    char p2[13] = " > /dev/pts/";
    char p3[3] = "";

    int term, compLimit, i;
    compLimit = 14;

    printf("Put terminal number here: ");
    scanf("%d", &term);
    sprintf(p3, "%s%d", p3, term);

    while(strncmp(px, "exit mudclient", compLimit))
    {
        for(i = 0; i < 1021; i++) px[i] = 0;
        scanf("%s", command);
        strcat(px, p1);
        strcat(px, command);
        strcat(px, p2);
        strcat(px, p3);
        system(px);
    }
    return 0;
}
4

1 に答える 1

0

あなたの問題の説明から、実際に必要なのはマスター ncurses ライブラリであることがわかります。これを使用すると、単一の端末内で入力から出力を分離することができ、フル機能の入力編集機能も利用できます (スクロール可能なコマンド履歴を使用)。

于 2013-05-24T11:04:44.250 に答える