2013-05-31 2 views
1

Я пытаюсь использовать popen. Когда я выполняю некоторую системную команду (например, скажем, ls или что-то еще), все работает нормально. Но когда я пытаюсь выполнить свой исполняемый файл:popen: 'sh: permission denied "

pipe = popen("./ <path>","r"); 

Я получаю сообщение об ошибке: ш: доступ запрещен

Оба исполняемых файлов (которые используются POPEN и та, которую я хочу начать с первого) принадлежит к моему пользователя accound и есть «х» разрешения..

+0

Является вторым «исполняемым» сценарием, возможно, с недопустимым #! строка вверху? Или второй исполняемый файл находится на другом диске, который монтируется без разрешения «exec»? – mshildt

+0

Нет, это двоичный файл и он находится на одном диске. И я могу запустить его из командной строки, так что кажется, что все в порядке с самим исполняемым файлом. Ubuntu 12.04 LTS. – olegst

+0

Действительно ли исполняемый файл называется ''? – jxh

ответ

0

Я бы дважды проверял это сообщение об ошибке, так как он должен сказать, что такое p ermission denied тоже относится. т.е. если путь был пуст, и вы только что прошли ./, или имели дополнительное пространство, как в вашем примере, вы должны увидеть

ш: ./: Отказано в

Как вы описать его, это звучит как ваш получение разрешения отклонения ошибки при попытке запуска/bin/sh; более вероятно, что вы неправильно поняли ошибку.