Я пытаюсь выполнить команды MS-DOS DEL
внутри программы Win32 C, и я уже знаю, что system
и popen
могут использоваться для этого.Однако проблема в том, что оба требуют строковых литералов (типа const char
) для команд, и мне нужно что-то вроде DOS-эквивалента этого кода Perl (более или менее, не знаю, работает ли он на самом деле):
my $user = $ENV{'USERNAME'};
my $directory = $ENV{'HOME'};
my $files = system("dir " . $directory);
my $pattern = "s/(\d{7,8})|(\"" . $user . "\")/";
$files ~= $pattern;
system("rm " . $files);
, который, очевидно, должен использовать строковые литералы для команды rm
.Есть ли какая-нибудь другая функция подпроцесса в C, которая допускает использование массивов символов в качестве аргументов для имен процессов?