[도움요청] cgi파일관련된 이상한 코드 해석좀
글쓴이: omando / 작성시간: 목, 2003/07/03 - 4:54오후
소스 분석중에 다음과 같은 이상한 이해안되는 구문이 있어서요.
.... main(int argc, char *argv[]) { char *path = "./Betting_GW.cgi"; char *pidfile = "./gateway.pid"; FILE *fd; int ret; int pid; while (1) { if ((pid = fork()) < 0) { continue; } if (pid == 0) { execl(path, "Betting_GW", (char *)0) ; } else { fd = fopen(pidfile,"w"); fprintf(fd, "%d\n", pid); fclose(fd); } printf("\tProcess %s started... PID is %d\n", argv[1], pid); wait(&ret); printf("\tProcess %s killed... now restart..\n", argv[1]); } }
위 소스에서 execl(path, "Betting_GW", (char *)0) ;
가 무슨 효과를 바라는건지 도무지??
CGI파일이라는것은 WEP 프로그래밍 관련된 규약같은것이라고 알고 있는데
이화일내에서 Betting_GW를 실행한다???
참고로 제가 분석중인 프로젝트내는 Wep과는 별 관계없고요.
start.c --> 위 소스가 있는곳입니다.
Betting_GW.cgi
Betting_GW.c --> 여기에도 main()함수가 존재해요.
Betting_GW.h
...기타 많은 화일들로 구성되어있걸랑요
원 저작자가 cgi 파일을 어떤 의도로 사용했는지 알고 싶어
cgi파일을 열어보려고도 했지만 텍스트로 열리지를 않네요.
이건 어떻게 요리해야되는지요..
솔직히 cgi에 대해서 잘 모르는데 이것을 따로 공부해야 이해할 수있는건지요
Forums:
[quote]execl(path, "Betting_GW", (char *
효과라고 볼수 있나 모르겠는데...
execl 이 path 를 실행시키고
이때 argv[0] 에 "Betting_GW" 가 들어 가게 되니
ps 로 프로세스 리스트를 보면
execl 로 실행된 프로세스 이름에 Betting_GW 가 나타날 겁니다.
from saibi
답변입니다.
execl(path, "Betting_GW", (char *)0) ;
path 를 실행하면서 "Betting_GW" 를 argument 로 사용하게 됩니다.
그럼 즐 프하세요.
무인도에 갇힌다면 당신이 가지고 갈 세가지는?
원 저작자의 의도...
$ gcc -o Betting_GW.cgi Betting_GW.c # some other options
를 통해 생성된 실행 파일일 것 같네요. 따라서 cgi 파일의 용도를 알아보려면 같은 이름의 c 파일을 열어보시면 되겠습니다.
위의 설명과 같이 웹서버(일반적으로)와 정보를 주고받기 위한 규약을 준수한다는 점만 제외하면 일반적인 실행 파일과 다를 바 없습니다.
KISS...
Keep It Small and Simple
댓글 달기