Как я могу избежать переменных, отправленных команде 'system' в C ++?
Этот вопрос говорит об использованииsystem
переменные команды и передачи. Вот пример, который он дает:
string cmd("curl -b cookie.txt -d test=");
cmd += line;
cmd += " http://example.com";
system(cmd.c_str());
В одном из комментариев упоминается, что еслиline
был передан и содержалсяfoo & fire_nukes.exe & REM
тогда вполне может случиться что-то плохое.
PHP имеет отличную функцию под названиемescape_shell_args
который может использоваться для экранирования параметров, которые передаются в программу. Есть ли в C ++ способ сделать это?