char* cmd[] = { "awk", "{ printf "%-10s %10s %10s %2s %2s \t%s \n", $3,$5,$6,$7,$8,$9 }", NULL};
execvp(cmd[0], cmd);
perror("execvp of awk failed");
Я использую трубы для своей программы. Я хочу, чтобы выполнить эту команду в C помощью execvp
:Передача awk (printf) in execvp
ls -l | awk '{ printf "%-10s %10s %10s %2s %2s \t%s \n", $3, $5,$6,$7,$8,$9 }'
Проблема в том, что я не мог найти правильный синтаксис для printf
в этом случае.
Может ли кто-нибудь указать, в чем моя ошибка?
Прежде всего, по крайней мере, сделать это компиляции, убегая кавычки в строковый литерал. – 2013-04-16 18:49:21
Сначала вы можете рассмотреть возможность сбрасывания двойных кавычек в инструкции printf. – gliptak
Возможно, вы захотите передать 'cmd' вместо' prog2' функции 'execvp()'. –