моя программа предназначена для разветвления процесса, построчно считывая файл из строки в родительском и перетаскивая эти строки по каналу для передачи в bc, который вызывается с помощью execve.
Файл, который я использую, представляет собой текстовый файл, который просто содержит 5 + 10.
Родительский процесс читает их следующим образом:
while(fgets(newWord, sizeof newWord, coolFile) != NULL)
{
write(stdin_pipe_fds[1], newWord, (strlen(newWord)+1));
}
Ребенок звонит до нашей эры так:
execve("/usr/bin/bc", argv, NULL);
При запуске программы выдается следующее сообщение об ошибке:
scg3q@system64:~/CS/project4$ (standard_in) 1: syntax error
(standard_in) 1: illegal character: ^@
(standard_in) 1: syntax error
Это происходит, когда я пытаюсь выполнить bc. Есть идеи?
РЕДАКТИРОВАТЬ: проверка того, что нулевой терминатор не передается в bc через канал, исправляет одно сообщение об ошибке (недопустимый символ), но два других остаются. Надеюсь, у кого-то есть представление о проблеме, может быть!