CGI를 C로 구현하려고 하는데 C프로그램을 어떻게 삽입해야 하나

익명 사용자의 이미지

CGI를 C언어를 이용해서 구현하려고 합니다. 그런데 웹서버에서 HTML같
은경우는 웹서버(아파치같은 경우에) 설정파일에서 IndexRoot에서
index.html처럼 그냥 불러주면 되지만 exe파일은 이렇게 부르게 되면
웹서버 실행하면 http로 들어가는게 아니라 파일 다운로드(ftp?;;;)가
됩니다. c로 작성한 프로그램은 어떻게 해야 webserver와 연동할수 있는
지요...제발 도와주십시요...ㅠ.ㅠ

익명 사용자의 이미지

c로 cgi를 만들어 보지는 않았지만.. 혹 이런문제는 아닐까 하는 생각이
들어 몇자 적어 봅니다.

다운받은 파일이 바이너리 그 자체인가, 결과 값인가?

ㅡ. 바이너리일 경우는 그 파일이 실행되도록 하면 되겠군요.. 아마도
httpd.conf에서 설정하게 되어 있지 않을까요??

ㅡ. 결과 값인 경우.. HTTP 프로토콜의 content-type을 살펴보시면 되겠군
요.. 아마도 헤더로 "content-type text/html; charset=euc-kr"을 날려주
시면.. 될듯..

익명 사용자의 이미지


기본으로 설정되어 있을겁니다.

.cgi 는 다 실행됩니다. index.cgi 는 기본적으로 열립니다.

.exe 가 아닙니다.

hurricanepark의 이미지

test.c 소스를 gcc -o index.cgi test.c 이렇식으로 하는건가요?

오늘 하루두 즐거운 하루였으면 좋겠습니다.

익명 사용자의 이미지

hurricanepark wrote:
test.c 소스를 gcc -o index.cgi test.c 이렇식으로 하는건가요?

넵!
cinsk의 이미지

작성한 프로그램의 문제가 아닌, Web server 설정에 따라 다릅니다. 보통 두 가지 방식이 있는데, 한 가지는 특정 디렉토리 (예 /cgi-bin/) 밑에 있는 파일을 모두 CGI 프로그램으로 인식하게 하는 방법이 있고, 또 하나는 파일의 특정 확장자 (예 .cgi)를 보고 CGI 프로그램으로 인식하게 하는 방법이 있습니다. (물론 Web server에 따라 다른 방법도 있습니다.)

서버의 사용자를 모두 신뢰할 수 있다면, .cgi 파일이 모두 CGI 프로그램으로 인식하게 설정하면, 개발이 쉽습니다.

따라서 말씀하신 것처럼 "gcc -o index.cgi. test.c"로 충분합니다. 주의할 것은, 권한 문제인데, CGI 프로그램이 실행된 프로세스는 소유자가 web server 프로세스라는 것입니다. 따라서 파일을 생성하고/쓰고/지우는 연산등을 수행할 때, 권한이 없어서 실패하는 등의 문제가 발생하지 않도록 해 주어야 합니다.

la9527의 이미지

QDecoder라는 한국에서 만든 라이브러리를 이용하면 편하게 작업 하실수 있을 듯 하네요.

html 변환 라이브러리가 좋은게 많아요. C를 사용하시면 이용하시면 편할 것입니다.

http://www.qdecoder.org/

hurricanepark의 이미지

친절한 답변들 너무 감사드립니다.

오늘 하루두 즐거운 하루였으면 좋겠습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.