Я вызываю скрипт 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 () без какого-либо взаимодействия с пользователем?