2012-04-19 2 views
1

cgic 코드에서 route -n을 호출하려고하는데 popen이 null을 반환합니다. 간단한 C 코드로 시도했지만 작동하지만 cgi에 넣으면 null이 반환됩니다.cgi의 -n 경로 호출

 printf("Content-type: text/html\r\n"); 
     printf("\r\n"); 
     .... 
     .. 
     stream = popen("route -n", "r"); 
     while (fgets(buffer, 100, stream) != NULL) 
     {........} 

while 루프에 들어 가지 않습니다. 나는 "cat" "netstat"등이라고 부를 수는 있지만 route -n은 작동하지 않습니다.

답변

0

내 리눅스 상자를 살펴보면 route/sbin/route 아래에 있으므로 표준 사용자의 경우 $PATH에 속하지 않습니다 (내 시스템에서 실행 가능).

catnetstat/bin/ 아래에 위치하고 있으므로 $PATH의 일부입니다.

popen("/sbin/route -n", "r"); 

이 프로세스를 불러옵니다.

이 옵션이없는 경우 경로에 /sbin/을 추가하면 해당 예에서도 사용할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그것은 작동합니다. – brknl

관련 문제