Contents

Develop
2003.04.23 09:44

[c] CGI Library to C^^

조회 수 8421 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

C언어의 CGI 라이브러리 함수


C언어의 구체적인 설명은 약하고 함수의 기능만 설명한다. 예제는 처음에 나오는 getword()함수만 우선 살펴보겠다.


#include <stdio.h>

#include "cgiutil.h"

void main()

{

    char *qs;

    qs = getenv("QUERY_STRING");

    

    printf("Content-type: text/html\n\n");

    printf("CGI 프로그램 : %s", qs);

}



#include <stdlib.h>

#include "cgiutil.h"

void main(int argc, char *argv[]) {

     char buf[200];

     char exeFile[BUFSIZE];

     strcpy(exeFile, argv[1]);

     while(1) {

          getword(buf, exeFile, '/');

          if(!strchr(exeFile, '/'))

             break;

     }

     printf(exeFile);

}


void getword(char *word, char *line, char stop) : 라인으로 전달되어온 문자열을 지정된 stop지시문자까지 읽어서 *word에 리턴하고, 그 다음부터 나오는 문자열을 line에 전달한다. 즉, line으로 온 문자열을 stop에서 지시한 구분자로 분리하여 앞의 것은 word에 뒤의 것은 line에 전달한다. 


char *makeword(char *line, char stop) : getword()와 같은 기능을 하되 getword()가 인자에 의해 값을 전달함에 비해 이 함수는 리턴값에 의해 결과를 전달한다. 


char *fmakeword(FILE *f, char stop, int *cl) : 파일 스트림에서 stop문자 전까지 읽어서 리턴값으로 돌려주고, 그 문자수만큼 cl값을 차감한다. 이것은 문자열의 크기만큼 매번 메모리 할당을 해야하는 번거로움을 줄이기 위해 사용한다.


char *smakeword(char *str, char stop, int *cl) : fmakeword()함수와 같은 기능을 하되, 파일 포인터를 인자로 받지 않고 문자열 포인터를 인자로 받는다. 


void plustospace(char *str) : 웹브라우저에서 인코딩된 '+'를 다시 원래 값인 스페이스로 치환한다.


int ind(char *s, char c) : 문자열 s에서 지정 문자 c가 나타나는 인덱스를 리턴한다. 인덱스는 0부터 시작하고, 없으면 -1을 리턴한다. 


int rind(char *s, char c) : int()함수와 같은 기능을 하되 문자열을 뒤에서 부터 찾는다. 


int getline(char *s, int n, FILE *f) : 파일스트림 f에서 n바이트를 읽어 문자열 s에 치환한다. 만약에 파일의 끝에 도달하면 1을, 그렇지 않으면 0을 리턴값으로 한다. 


void send_fd(FILE *f, FILE *fd) : 파일스트림 f를 fd로 복사한다. 


void escape_shell_cmd(char *cmd) : 특수문자 앞에 를 붙여서 제어문자로 작동하지 않도록 한다. 


char *rmCtrlChar(char *str) : &amp;, ", &lt;, &gt; 등과 같이 프로그램 처리나 보안상 문제가 될만한 문자를 제거한다. 


char rmCrLf(char *str) : Carriage Return이나 Line Feed문자를 제거한다. 


void prtErrMsg(char *str) : 모든 에러 메시지를 정형화된 형태로 출력한다. 


void back(void) : 직전 메뉴로 이동하는 앵커를 준비한다.



?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
841 Develop '2014 모바일 개발 트렌드' 발표자료입니다. file hooni 2014.10.02 974
840 Develop Aspect Oriented Programming in Objective-C hooni 2015.05.18 672
839 Develop DDay Memo 1.9.4 소스코드 secret hooni 2015.10.03 0
838 Develop GCM 사용하기 2 (단말에 GCM 구현하기) file hooni 2013.07.06 23248
837 Develop GCM 사용하기 3 (JSP로 GCM 푸시 서버 만들기) 4 file hooni 2013.07.06 25315
836 Develop git 브런치 배우기 (링크) hooni 2013.07.09 20571
835 Develop GPL, AGPL, MPL,.. 한눈에 보는 오픈소스SW 라이선스 file hooni 2014.10.14 1144
834 Develop How to Test SMTP AUTH using Telnet hooni 2018.04.05 1322
833 Develop JSON, BSON 변환 file hooni 2013.04.23 11814
832 Develop Laravel 5 Failed opening required bootstrap/../vendor/autoload.php hooni 2018.01.24 1642
831 Develop Mac OS 에 Jenkins 설치하기 (Homebrew) 2 file hooni 2017.03.15 8062
830 Develop macOS에 node, npm 설치하기 (homebrew) file hooni 2021.11.06 1122
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71