だから私がやろうとしているのは、system()
という機能を持つシステムコマンドを呼び出して、その出力を何とかしてそれをクライアントに送ることですソケット接続)。システムコマンドをsystem()で実行し、出力を送信する
クライアントはさまざまなメッセージを送信できます。 ls
でも構いませんが、qwerty
でもかまいません。出力を取り出してwrite()
ファンクションのconst void* buffer
引数に配置したいと思います。私はthis topicを見ましたが、私はそれが働くようにすることができます。これまで私はそれがこれらの行のどこかに行くことができると思ったが、何を試してもうまくいかなかった。それはあなたがリンクされ、問題の説明として
/* buffer is message from the client: ls, ls -l, whatever*/
system(buffer)
fp = popen(buffer, "r");
if(fp == NULL)
printf("Failed ot run command\n");
while(fgets(path, sizeof(path), fp) != NULL) {
//modify output here?
}
pclose(fp);
write(socket_fd, output, strlen(buffer));
? –
右上の@ Code-Apprentice – Lisek
コマンドラインからのコマンドもファイル名ではないようです。 –