CGI programming 예제

Programming/C/C++ 2007/06/01 23:43 장인정신
span class=postbodyCGI 에 관한 여러가지 사항을 예제로 표현해봤습니다. (첨부파일) br /br /pipe 관련한 예제는 다음의 링크를 참고하세요. br /a class=postlink href=https://bbs.minzkn.com/viewtopic.php?t=68amp;highlight=pipe target=_blankfont color=#006699https://bbs.minzkn.com/viewtopic.php?t=68amp;highlight=pipe/font/a br /br //span table align=center border=0 cellpadding=3 cellspacing=1 width=90% tbody tr tdspan class=genmedb코드:/b/span/td/tr tr td class=code/* br /nbsp; Copyright (C) Information Equipment co.,LTD br /nbsp; All rights reserved. br /nbsp; Code by JaeHyuk Cho lt;mailto:minzkn@infoeq.comgt; br /nbsp; CVSTAG=$Header$ br /*/ br /br /#include lt;stdio.hgt; br /#include lt;string.hgt; br /#include lt;stdlib.hgt; br /#include lt;unistd.hgt; br /br /static int g_argc; br /static char **g_argv; br /static char **g_env; br /br /static int (cgi_system)(int s_print, const char *s_command) br /{ br /nbsp;FILE *s_pipe; br /nbsp;unsigned char s_buffer[ 4 lt;lt; 10 ]; br /nbsp;size_t s_read_bytes; br /nbsp;if((s_pipe = popen(s_command, r)) == ((FILE *)0))return(-1); br /nbsp;while(feof(s_pipe) == 0) br /nbsp;{ br /nbsp; s_read_bytes = fread((void *)(amp;s_buffer[0]), (size_t)1, (size_t)sizeof(s_buffer), s_pipe); br /nbsp; if(s_read_bytes lt;= ((size_t)0))break; br /nbsp; if((s_print != 0) amp;amp; (fwrite((void *)(amp;s_buffer[0]), (size_t)1, s_read_bytes, stdout) != ((ssize_t)s_read_bytes)))break; br /nbsp;} br /nbsp;return(pclose(s_pipe)); br /} br /br /static void (html_init)(void) br /{ br /nbsp;(void)fputs(Content-Type: text/html\n\n, stdout); br /} br /br /static void (html_head)(void) br /{ br /nbsp;(void)fputs(lt;htmlgt;lt;headgt;lt;titlegt;cgi testlt;/titlegt;lt;/headgt;lt;bodygt;\n, stdout); br /} br /br /static void (html_tail)(void) br /{ br /nbsp;(void)fputs( lt;/bodygt;\nlt;/htmlgt;\n, stdout); br /} br /br /static void (html_body)(void) br /{ br /nbsp;int s_index; br /nbsp;(void)fputs(lt;pgt;MINZKN's CGI TESTlt;/pgt;lt;hr /gt;lt;pregt;\n, stdout); br /nbsp;for(s_index = 0;s_index lt; g_argc;s_index++)(void)fprintf(stdout, argv[%d] = \%s\\n, s_index, g_argv[s_index]); br /nbsp;(void)fputs(lt;/pregt;lt;hr /gt;\n, stdout); br /br /nbsp;(void)fputs(lt;pregt;\n, stdout); br /nbsp;for(s_index = 0;g_env[s_index] != ((char *)0);s_index++)(void)fprintf(stdout, env[%d] = \%s\\n, s_index, g_env[s_index]); br /nbsp;(void)fputs(lt;/pregt;lt;hr /gt;\n, stdout); br /br /nbsp;(void)fputs(lt;pregt;WHOAMI : , stdout); br /nbsp;(void)cgi_system(1, whoami); br /nbsp;(void)fprintf(stdout, UID : %ult;/pregt;lt;hr /gt;\n, (unsigned int)getuid()); br /br /nbsp;(void)fputs(lt;pregt;, stdout); br /nbsp;(void)cgi_system(1, /bin/ls -al /tmp); br /nbsp;(void)fputs(lt;/pregt;lt;hr /gt;\n, stdout); br /} br /br /static void (html_flush)(void) br /{ br /nbsp;(void)fflush(stdout); br /} br /br /int (main)(int s_argc, char **s_argv, char **s_env) br /{ br /nbsp;g_argc = s_argc, g_argv = s_argv, g_env = s_env; br /nbsp;html_init(); br /nbsp;html_head(); br /nbsp;html_body(); br /nbsp;html_tail(); br /nbsp;html_flush(); br /nbsp;return(0); br /} br /br //* vim: set expandtab: */ br //* End of source *//td/tr/tbody/tablespan class=postbodybr /br /br /관련글 : a class=postlink href=http://joinc.co.kr/modules.php?op=modloadamp;name=Forumamp;file=viewtopicamp;topic=31315amp;forum=1 target=_blankfont color=#006699http://joinc.co.kr/modules.php?op=modloadamp;name=Forumamp;file=viewtopicamp;topic=31315amp;forum=1/font/a/span br /
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/06/01 23:43 2007/06/01 23:43
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.minzkn.com/rss/response/135

댓글+트랙백 ATOM :: http://blog.minzkn.com/atom/response/135

트랙백 주소 :: http://blog.minzkn.com/trackback/135

트랙백 RSS :: http://blog.minzkn.com/rss/trackback/135

트랙백 ATOM :: http://blog.minzkn.com/atom/trackback/135

댓글을 달아 주세요

댓글 RSS 주소 : http://blog.minzkn.com/rss/comment/135
댓글 ATOM 주소 : http://blog.minzkn.com/atom/comment/135