2016-06-08 2 views
0

Raspbian을 실행하는 Raspberry Pi B +에서 호스팅되는 웹 서버가 있습니다. 난 항상 사용할 수있는 PHP "쉘"을 가지고 있지만, 어떻게 든 엉망이 될 것 같습니다. name="phptorun"이있는 html 텍스트 영역이며 동작 파일은 eval($_POST['phptorun']);입니다.일부 시스템에서는 PHP 시스템()이 작동하지만 일부는 작동하지 않습니다.

디스플레이가없는 테이블 아래에 내 RPi를 넣었으므로 명령 줄에 액세스하기 위해 휴대 전화를 사용합니다.

내 질문 :

내가 출력과 작업 디렉토리의 내용이 표시됩니다 얻을 system("ls"); 뭔가를 실행합니다. 나는 C "컴파일러"(그냥 명령 줄 gcc을 사용)에서 일하고있다. 그러나 내가 할 때 system("gcc"); 나는 출력을 전혀 얻지 않는다. 나는 다른 컴퓨터에서 이전에 해왔 기 때문에 명령 gcc가 출력을 내 보낸다는 것을 안다.

그렇다면 system("gcc");이 작동하지 않는 이유는 무엇입니까?

gcc가 설치되어 있지 않은 경우 출력이 표시되지 않겠습니까?

+0

'system ($ command, $ return) '처럼 실행하고'$ return' 변수의 내용을 확인하십시오. –

+0

@Ferenczy 그냥 "4"를 출력합니다. 왜 그렇게 되었습니까? –

+0

잘 모르겠습니다. 그럼 [Google] (https://www.google.com/search?q=linux+return+code+4&oq=linux+return+code+4)에 질문하지 않으시겠습니까? [이 페이지] (http://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Errors/unix_system_errors.html)에 따르면 ** Interrupted system call **입니다. 추가 조사를 시작하기에 좋은 출발점입니다. –

답변

1

자세한 내용은 gccSTDERR으로 출력 할 수 있습니다. 예를 들어 system 기능을 사용하면 누락 된 부분이 있습니다.

더 나은 시도는 exec 기능을 사용하는 방법 :

exec("gcc 2>&1", $output, $return_code); 

설명 :

  • gcc 2>&1$output 변수
  • 명령의 리턴 코드에 포착되는 STDOUT
  • STDOUTSTDERR 출력을 리디렉션 에 변수 $return_code
관련 문제