что это за функция, которая действует как SYSTEM (const char *) и принимает не const char, а динамический запрос - PullRequest
0 голосов
/ 04 ноября 2010

Я хочу написать программу, которая создаст файл, передав строку в оболочку при выполнении программы.это может быть сделано системой (), но я хочу использовать эту функцию для многих аргументов в цикле.использование системы (char *) дает ошибку.Есть ли другой способ

Я много пробовал PLZ, кто-нибудь, помогите мне.

Ответы [ 4 ]

3 голосов
/ 04 ноября 2010

Преобразование из char* в const char* неявно и будет работать. Проблема в другом месте.

2 голосов
/ 04 ноября 2010

const char *s не имеет ничего общего с тем, что он ожидает найти в s.Это обещание, данное функцией, что функция не будет изменять содержимое s.

0 голосов
/ 04 ноября 2010

Похоже, вы ищете execv.Поведение не совсем идентично, но оно близко.Смотрите также execl.У них одна и та же страница справочника.

0 голосов
/ 04 ноября 2010

Вы можете использовать system как упомянуто и программно изменить char *, который вы передаете, или вы можете использовать функцию семейства exec (exec, execve, execvp и т. Д. ... в зависимости от того, что доступно в вашей системе).

Пожалуйста, внимательно прочитайте человека system и exec: они не делают одно и то же. Возможно, вы захотите взглянуть и на мужчину fork, если пойдете по пути exec.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...