묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
c로 cgi만들기에서;;;
2003.06.09 17:53
안녕하세요
질문드릴것이 있어서 글 남깁니다.. ^^;
cgi를 돌리려고 하는데 perl로 구현한것이 아니라 gcc로 컴파일한것을 form action으로 불러서 사용할려고 하고 있습니다.
hello.c --
#include <stdio.h>
int main()
{
printf("hello");
return 0;
}
gcc -o hello.cgi hello.c
위와 같이 hello.cgi를 생성했고 hello.htm은 다음과 같습니다.
hello.htm
<form method="post" action="./hello.cgi">
<input type="submit" value="GO">
</form>
근데 GO버튼을 누르면 Internal Server error가 나는데...
이유를 모르겠습니다.
제가 무엇을 놓치고 있는지 아시는분 자세한 답변 부탁드리겠습니다...
즐거운 하루 되세요
p.s 그냥 perl로 짠 cgi는 해석기가 필요한것으로 알고 있습니다.
근데 c로 구현한 cgi같은 경우에도 해석기가 필요한지요...
바이너리를 동작시키기 위해선 필요할것 같은데;;;
자세하게 잘 모르겠어서요;;
p.s2 c언어로 cgi구현하는 좋은서적 있으면 추천부탁드리겠습니다...
질문드릴것이 있어서 글 남깁니다.. ^^;
cgi를 돌리려고 하는데 perl로 구현한것이 아니라 gcc로 컴파일한것을 form action으로 불러서 사용할려고 하고 있습니다.
hello.c --
#include <stdio.h>
int main()
{
printf("hello");
return 0;
}
gcc -o hello.cgi hello.c
위와 같이 hello.cgi를 생성했고 hello.htm은 다음과 같습니다.
hello.htm
<form method="post" action="./hello.cgi">
<input type="submit" value="GO">
</form>
근데 GO버튼을 누르면 Internal Server error가 나는데...
이유를 모르겠습니다.
제가 무엇을 놓치고 있는지 아시는분 자세한 답변 부탁드리겠습니다...
즐거운 하루 되세요
p.s 그냥 perl로 짠 cgi는 해석기가 필요한것으로 알고 있습니다.
근데 c로 구현한 cgi같은 경우에도 해석기가 필요한지요...
바이너리를 동작시키기 위해선 필요할것 같은데;;;
자세하게 잘 모르겠어서요;;
p.s2 c언어로 cgi구현하는 좋은서적 있으면 추천부탁드리겠습니다...
댓글 3
-
steelheart
2003.06.09 19:21
-
steelheart
2003.06.09 19:23
기억이 틀렸다면 안될수도 있습니다; -
z1581617
2003.06.10 10:10
답변 감사드립니다. ^^
되네요...
그렇군요... 신기하네요 ^^;
다시한번 감사드립니다... (__)
cgi가 실행되면 처음에 몇가지 응답헤더를 내보내는데 그중 Content-type이란게 있습니다.
실행된 결과가 어떤 타입인지 브라우저에게 알려주는 거죠. 그리고 이 헤더 뒤에 두번 줄을
띄우고 데이타를 내보내면 이게 요청의 결과가 됩니다. 다른건 다 몰라도 시작하기 전에
무조건 printf("Content-type: text/html%c%c", 10, 10); 이건 빼먹으면 안됩니다.
------------------
int main()
{
printf("Content-type: text/html%c%c", 10, 10);
printf("hello");
return 0;
}
별도의 해석엔진은 필요없습니다. 펄 같은 경우는 스스로 실행할 수 있는 능력이 없으니
해석 엔진이 필요하지만 c로 컴파일된 소스는 단독실행이 가능하기 때문에 해석기는
필요하지 않습니다. 다만... 펄 같은 경우는 넘어온 데이타를 쉽게 처리하기 위한
함수들을 제공하지만 c는 받아온 데이타를 파싱하고 해석하는 루틴을 별도로 직접
만들어 써야 됩니다. 이건 인터넷 등을 뒤지면 관련소스를 쉽게 얻을 수 있습니다.