отличный выполняются с параметрами, содержащими пробелы

Из-за тебя вернись char* или NULL. Вы не можете приводить указатели к не указательным типам. Теперь должна быть ошибка при компиляции. Ваша функция должна вернуть char*.

Вы не можете привести char* к int*, поскольку int выделяет больше памяти в памяти, поэтому память должна быть перераспределена, это должно быть сделано вручную.

27
задан Johan Lübcke 24 April 2009 в 14:49
поделиться

3 ответа

The trick was to use a list:

println(['ls', '/tmp/folder with spaces'].execute().text)
27
ответ дан 28 November 2019 в 05:50
поделиться

did you tried escaping spaces?

println 'ls /tmp/folder\ with\ spaces'.execute().text
-4
ответ дан 28 November 2019 в 05:50
поделиться

Использование списка кажется мне немного неуклюжим.

Это сработает:

def exec(act) { 
 def cmd = []
 act.split('"').each { 
   if (it.trim() != "") { cmd += it.trim(); }
 }
 return cmd.execute().text
}

println exec('ls "/tmp/folder with spaces"')

Более сложный пример:

println runme('mysql "-uroot" "--execute=CREATE DATABASE TESTDB; USE TESTDB; \\. test.sql"');

Единственным недостатком является необходимость заключать все в кавычки ваши аргументы, я могу жить с этим!

-2
ответ дан 28 November 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: