Из-за тебя вернись char*
или NULL
. Вы не можете приводить указатели к не указательным типам. Теперь должна быть ошибка при компиляции. Ваша функция должна вернуть char*
.
Вы не можете привести char*
к int*
, поскольку int выделяет больше памяти в памяти, поэтому память должна быть перераспределена, это должно быть сделано вручную.
The trick was to use a list:
println(['ls', '/tmp/folder with spaces'].execute().text)
did you tried escaping spaces?
println 'ls /tmp/folder\ with\ spaces'.execute().text
Использование списка кажется мне немного неуклюжим.
Это сработает:
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"');
Единственным недостатком является необходимость заключать все в кавычки ваши аргументы, я могу жить с этим!