LINUX.ORG.RU

История изменений

Исправление slovazap, (текущая версия) :

Экранируй.

Либо каждый спецсимвол отдельно:

ProgramName(Debug).exe -> ProgramName\(Debug\).exe

но множество этих символов и способ экранирования системо-зависимы (в венде, скажем, «\» это нормальный символ и используется в путях, как там экранировать я не помню, возможно через «^»)

Либо бери каждый аргумент в двойные кавычки

ProgramName(Debug).exe > "ProgramName(Debug).exe"
но тут нужно учесть что в аргументе также могут быть двойные кавычки и их, опять таки, нужно экранировать.

На самом деле хотя бы из-за этого system - говно, и лучше написать под #ifdef для windows - CreateProcess или как там его, для всего остального - fork+exec.

Исправление slovazap, :

Экранируй.

Либо каждый спецсимвол отдельно (

ProgramName(Debug).exe -> ProgramName\(Debug\).exe
), но множество этих символов и способ экранирования системо-специфичны (в венде, скажем, «\» это нормальный символ и используется в путях, как там экранировать я не помню, возможно через «^»)

Либо бери каждый аргумент в двойные кавычки (

ProgramName(Debug).exe > "ProgramName(Debug).exe"
), но тут нужно учесть что в аргументе также могут быть двойные кавычки и их, опять таки, нужно экранировать.

Исходная версия slovazap, :

Экранируй.

Либо каждый спецсимвол отдельно (ProgramName(Debug).exe -> ProgramName\(Debug\).exe), но множество этих символов и способ экранирования системо-специфичны (в венде, скажем, «\» это нормальный символ и используется в путях, как там экранировать я не помню, возможно через «^»)

Либо бери каждый аргумент в двойные кавычки (ProgramName(Debug).exe > «ProgramName(Debug).exe»), но тут нужно учесть что в аргументе также могут быть двойные кавычки и их, опять таки, нужно экранировать.