¿Cómo modifico las opciones de comando para tener "dirección" como variable?

programación

[ad_1]

Necesito tener la opción “addr” como variable.
Tal como se usa ahora es un símbolo… ¿no es así?

¿Cuál es la sintaxis adecuada?

..como se define/utiliza aquí

char addr[19] = { 0 };

ba2str(&(ii+i)->bdaddr, addr);
<pre lang="text">
<pre>QP->start("/bin/sh", { "-c", "echo q  | sudo -S hcitool info addr" });

Lo que he probado:

>QP->start("/bin/sh", { "-c", "echo q  | sudo -S hcitool info " + _ " addr" })

Solución 1

QP->start("/bin/sh", { "-c", "echo q  | sudo -S hcitool info " + _ " addr" })

No estoy seguro de qué hace el guión bajo allí. ¿Quizás un error tipográfico?

¿Por qué diablos pensarías eso? addr ¿Dentro de una cadena entre comillas se referiría a una variable de programa? Si tuvieras una variable info o echo en su programa, ¿esperaría que los valores de esos también se sustituyeran en la cadena?

Suponiendo que la semántica std::string para los argumentos es para QP->start, entonces debería poder usar

C++
QP->start("/bin/sh", { "-c", "echo q  | sudo -S hcitool info " + addr });

Si los argumentos son cadenas terminadas en NUL estilo C, entonces tiene opciones:

C++
// using std::string
std::string cmdstr{"echo q  | sudo -S hcitool info ");
cmdstr.append(addr);
QP->start("/bin/sh", { "-c", cmdstr.c_str() };

//using sprintf
#include <cstdio>
char cmdstr[256]; // something big enough to not overflow
sprintf(cmdstr, "echo q  | sudo -S hcitool info %s", addr);
QP->start("/bin/sh", { "-c", cmdstr};

//using strcat
#include <cstring>
char cmdstr[256]{"echo q  | sudo -S hcitool info "};
strcat(cmdstr, addr);
QP->start("/bin/sh", { "-c", cmdstr};

//using a string-stream
#include <sstream>
std::stringstream command{"echo q  | sudo -S hcitool info "};
comand << addr;
QP->start("/bin/sh", { "-c", command.str().c_str() };

Probablemente haya otros también. Estoy seguro de que QString y sus amigos ofrecen instalaciones similares.

[ad_2]

コメント

Título y URL copiados