2016-06-21 6 views
1

Я выполняю программу на языке C. i.e. .exe, которая является исполняемым файлом с PHP.Выполнение программы на языке C от PHP

У меня есть интерфейс с HTML, который вызывает файл PHP всякий раз, когда я нажимаю кнопку.

На PHP он вызывает сценарий оболочки. Так на PHP, я использую следующее:

echo shell_exec('sh auto_script.sh'); 

Файл оболочки выполняет программу EXE-файл следующим образом:

./import -file.txt 

где import мой исполняемые C программе .exe и file.txt является который я жестко кодирую на данный момент.

Исполняемый файл 'import' хранится в том же самом директивном файле, что и php-файл.

Когда я выполняю сценарий оболочки на терминале, он выполняется правильно с необходимым выходом.

Но когда я пытаюсь выполнить его с PHP, он не работает. На данный момент я дал полные разрешения для файла.

+1

Имеется ли сценарий 'cd' в каталоге, содержащем программу' import'? '. /' означает найти программу в текущем рабочем каталоге. – Barmar

+1

Вам нужны цитаты вокруг аргумента 'shell_exec()'. – Barmar

+0

Да импорт - это исполняемый файл, который находится в том же каталоге, что и файл php, и у меня есть кавычки вокруг аргумента в shell_exec. –

ответ

0

Быстрая проверка на [ shell_exec ] страница руководства говорит shell_exec имеет следующее определение:

строка shell_exec (строка $ CMD)

, что означает, что аргумент должен быть строкой, которая действительно средство он должен быть внутри кавычек. Кстати, вам не нужен медиатор сценарий здесь в любом случае, Так что:

echo shell_exec('./import "-file.txt"'); //Using relative paths 

Сказав, что размещение двоичного файла в папке скриптов это плохая идея, но я надеюсь, что выше поможет вам получить ты.

+0

Программа C бросает ошибку ошибки сегментации, когда я выполняю ее через скрипт оболочки, но когда я выполняю ее по отдельности, она не вызывает никакой ошибки –

Смежные вопросы