Как вы можете узнать, если popen() успешно / успешно выполнил запуск оболочки или не удалось?
popen()
возвращаемое значение popen :
После успешного завершения popen () возвращает указатель на открытие Поток, который можно использовать для чтения или записи в канал. В противном случае это должен вернуть нулевой указатель и может установить errno для указания ошибки.
fp = popen("ls *", "r"); if (fp == NULL) /* Handle error */;
Предполагая, что вы имеете в виду запуск popen в C-коде, вы можете проверить страницу руководства.В нем говорится, что popen вернет NULL в случае сбоя, а в противном случае он возвращает поток файлов.