Сначала fgets
получит строку с символом '\ n', когда размер вставленной строки <(255-1). Итак, давайте установим <code>\n на \0
:
fgets(cmd, 255, stdin);
cmd[strlen(cmd) - 1] = '\0';
CreateProcess(cmd, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
Второй,
больше экземпляров cmd, всплывающих в командной строке.
Если то, что вы имеете в виду, похоже:
Это связано с тем, что фокус ввода процесса cmd и текущего процесса попеременно появляется в одной консоли, не всегда создавая новый экземпляр.
Если вы CreateProcess
с CREATE_NEW_CONSOLE
:
CreateProcess(cmd, NULL, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
Вы увидите, что была создана только новая консоль cmd.