2016-06-21 17 views
1

나는 C 프로그램, 즉 PHP의 실행 파일 인 '.exe'를 실행하고 있습니다.PHP에서 C 프로그램 실행

버튼을 클릭 할 때마다 PHP 파일을 호출하는 HTML 인터페이스가 있습니다.

PHP에서 PHP는 셸 스크립트를 호출합니다. import 내 실행 파일의 C 프로그램이 .exe입니다

./import -file.txt 

및 file.txt를가 있습니다 : 다음과 같이

echo shell_exec('sh auto_script.sh'); 

쉘 파일이 프로그램 .EXE를 실행합니다 그래서 PHP에, 나는 다음과 같은 사용 내가 지금 하드 코딩하고있는 입력.

실행 파일 '가져 오기'는 호출 된 PHP 파일과 동일한 디렉토리에 저장됩니다.

터미널에서 쉘 스크립트를 실행할 때, 필요한 출력으로 올바르게 실행됩니다.

하지만 PHP에서 실행하려고하면 작동하지 않습니다. 나는 지금까지 파일에 대한 모든 권한을주었습니다.

문자열 shell_exec (문자열 $ cmd를)

인수가 문자열, 참 수단을해야한다는 것을 의미 :

+1

'import' 프로그램이 들어있는 디렉토리에 'cd' 스크립트가 있습니까? '. /'는 현재 작업 디렉토리에서 프로그램을 찾는 것을 의미합니다. – Barmar

+1

'shell_exec()'의 인수를 인용 부호로 묶어야합니다. – Barmar

+0

예 가져 오기는 php 파일과 같은 디렉토리에있는 실행 파일이며 shell_exec의 인수를 따옴표로 묶었습니다. –

답변

0

[ shell_exec ] 맨 페이지에 빠른 검사가 shell_exec는 다음과 같이 정의되어있다 말한다 따옴표 안에 있어야합니다. BTW, 당신은 여기 어쨌든 중재자 스크립트가 필요합니다, 그래서하지 않는다 :

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

은 스크립트 폴더에 바이너리를 배치하는 것은 나쁜 생각이라고 말했다 데,하지만 위의 희망 당신이 가야하는 데 도움이.

+0

쉘 스크립트를 통해 C 프로그램을 실행할 때 C 프로그램이 세그먼트 오류 오류를 던지고 있지만 개별적으로 실행하면 오류가 발생하지 않습니다. –