2014-01-25 3 views
0

서버에서 실행하고 출력을 반환하고 싶은 C++ 코드가 있습니다. 나는PHP로 C++ 코드 실행

exec("./myprogram.exe", $out);

프로그램을 실행해야하고 $out 출력을 유지 것이라는 점을 알고있다. 현재 내 프로그램에서 출력을 얻을 수 없습니다 ... cout을 사용하여 출력하고 Windows에서 컴파일했습니다. 실행하려는 서버는 Linux 기반입니다. 어떤 포인터?

답변

1

첫째, 당신은 다른 컴파일러 (g++matters a lot 인수의 순서) 첫 g++ -Wall -g를 사용하여, 리눅스에 대한 당신의 C++ 코드를 컴파일 - 그럼 필요의 인자 -Wall 때문에 디버깅 정보에 대한 모든 경고를 요청하고 -g. Linux에서 코드를 디버깅 한 후에는 -O2을 전달하여 GCC에 최적화하도록 요청할 수 있습니다.

그런 다음 PHP의 popen 기능을 사용하여 명령 결과를 얻습니다 (pipe 통해). 문서화 된대로 fgets 파이프 핸들에서 읽을 수 있으며, pclose을 잊지 마세요. this answer도 참조하십시오.

+0

여기서 어떻게 인수 순서가 중요합니까? –

+0

이전 답변에 대한 링크를 추가했습니다. 제가 이야기하고있는 것은'g ++'에 대한 논쟁의 순서입니다. –

+0

그것은 분명했다. 나는 여기서 그것이 부적당하다고 말하고있다. –