Обратный слеш в строке name
интерпретируется вашим компилятором, и затем вы используете эту строку для построения строки extractInfoCmd
, которую вы передаете оболочке (/bin/sh
), которая пытается их интерпретировать. снова. Таким образом, фактическая строка, которая передается процессу grep
, не та, которую вы намереваетесь.
Вероятно, лучший способ исправить это - избегать использования system
и вместо этого использовать что-то вроде execlp
, где вы можете передавать каждый аргумент отдельно.
Также нет необходимости использовать конвейер для передачи информации от find
до grep
, вы можете сделать это с самим find
:
find . -name '*.info' -exec grep -E '^PART|^\\pot\ ' {} \;
Или непосредственно в C: [1116 ]
execlp(
"/usr/bin/find",
".",
"-name",
"*.info",
"-exec",
"grep",
"-E",
"^PART|^\\\\pot\\ ",
"{}",
";",
NULL);
Вместо того, чтобы передать вывод в файл с помощью оболочки, вы можете просто использовать pipe
в своем процессе, чтобы напрямую получить канал к стандартному выводу find
, который затем можно прочитать.
URL, поскольку у Вас есть он, назовет 6 () методом Вашего ViewController, который не является именем действительного метода. Вам, вероятно, придется играть с Вашими маршрутами, чтобы заставить это работать.
Если Вы не захотите настраивать свои маршруты, то Вам будет нужен контроллер в URL, как так:
http://example.com/thinger/view/6
который будет звонить thingerControllerObject->view("6")
. Если Вы хотите "/, чтобы представление /" перешло к другому методу, редактируете маршруты. См.:
Для доступа к параметру в представлении заглядывают $this->params
Параметры могут быть получены следующим образом
$this->params['pass']
Возвращает массив (с числовым индексом) параметров URL после действия.
// URL: /posts/view/12/print/narrow
Array
(
[0] => 12
[1] => print
[2] => narrow
)