![C ++で "sudo -S"コマンドを使用して端末にパスワード入力をバイパスする方法は? [コピー]](https://linux33.com/image/229241/C%20%2B%2B%E3%81%A7%20%22sudo%20-S%22%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E7%AB%AF%E6%9C%AB%E3%81%AB%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E5%85%A5%E5%8A%9B%E3%82%92%E3%83%90%E3%82%A4%E3%83%91%E3%82%B9%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
Linux端末で「sudo」を渡さずに、rootとして次のコマンドを実行する必要があります。 。 (「安全」コメントを投稿しないでください...)
「hcitool CCアドレス」
「sudo -S」オプションを使用できます。
cで書かれた追加のsudo / pipeコードがあります。
#include#include#含む
int main() { std::string userPass{"myPassword"}; std::string command{"sudo -S ps -lf 2>/dev/null <<_EOF\n" + userPass + "\n_EOF"}; FILE *pipe = popen(command.c_str(), "r");文字* line = NULL; ssize_t rlen; while( (rlen = getline(&line, &len, パイプライン)) > 0) [--rlen] = '\0'; // 末尾の改行 std::cout << line << '\n' }
pclose(pipe);
free(line);
}
これが私が今まで持っているものです
FILE *cmd;
int status;
QFile *pipe;
cmd = popen("/usr/bin/sudo -S id -un 2>/dev/null", "w");
// MODIFY for c++
QString Password = "q";
QString Command =" sudo -S ps -lf 2>/dev/null <<_EOF\n" + Password + "\n_EOF";
// std::string userPass{"myPassword"};
// std::string command{"sudo -S ps -lf 2>/dev/null <<_EOF\n" + userPass + "\n_EOF"};
pipe->open ???
I could use help finishing converting the c code into C++.
Qtを使用していますが、一般的なC ++コードも問題ありません。
「オプション」「ps」を理解していません。 man ドキュメントに見つかりません。例では、「cmdファイル」がどのように機能するのかわかりません。
ありがとう