вызов сценария awk из C ++ останавливается на "bozo: wait_for" - PullRequest
1 голос
/ 25 июля 2011

Я вызываю скрипт bash из C ++, сначала выполняя vfork(), а затем вызывая execv(SHELLPATH, SHELLSCRIPT). Из сценария bash я затем вызываю сценарий awk для обработки вывода команды, используя:

cat textfile | ./parseInfo.awk

Я заметил, что скрипт bash работает нормально, но когда он попадает в скрипт awk, он просто зависает и получает ответ командной строки: "awk: bozo: wait_for". Я не смог найти ссылку на Google на то, что этот ответ может означать.

Сделав несколько распечаток из скрипта awk, я заметил, что когда я выполняю системный вызов, именно это и вызывает это ожидание из скрипта (который мне затем нужно нажать enter для того, чтобы вернуть команду -линейная подсказка). Итак, что я делаю:

dirNotExistCheck = "[ -d " DIR "]"
if(system(dirExistCheck) == 1)
{

}

Есть ли способ вызвать sysem () без какого-либо взаимодействия с пользователем?

1 Ответ

0 голосов
/ 25 июля 2011

Если он ожидает нажатия клавиши, вы можете запустить его так: echo | <your command here>

Мы просто делаем вашу команду , чтобы прочитать входные данные из другого места. Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...