fgets () вылетает в coreos - PullRequest
       9

fgets () вылетает в coreos

0 голосов
/ 16 ноября 2018

У меня есть этот фрагмент кода C, который выполняется на компьютере с операционной системой coreOS:

char db[512];
snprintf(db, 512, "%s %s", <some command>, <args of the command>);
FILE* pipe = popen(db, "r");
if (!pipe) {
    return NULL;
}

char buf[256];
while (fgets(buf, sizeof(buf), pipe) != NULL) {
    <DEBUG POINT 1>
    <some code utilising buf>
}
<DEBUG POINT 2>

Теперь команда, которая выполняется и которая передается в канал, в конце концов вызывает код Python, который возвращаетНет (Null) с данным аргументом.Проблема, с которой я сталкиваюсь, заключается в том, что fgets не может обработать ответ, и программа вылетает, когда она пытается выполнить fgets () в Pipe.Я имею в виду, что при достижении while () моя программа завершает работу и не может достичь ни точки отладки 1, ни 2. Я пытался найти возможные решения, но не смог ничего найти.

Еще один интересныйДело в том, что когда я запускаю один и тот же код на машине Amazon Linux, он работает нормально, и я получаю желаемое поведение.

Может кто-нибудь, пожалуйста, направьте меня в правильном направлении.

...