Contents

Develop
2003.04.23 09:44

[c] CGI Library to C^^

Views 8422 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

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
No. Category Subject Author Date Views
1161 Develop [iOS] Xcode 불필요한 캐시 삭제하기 hooni 2021.10.12 1801
1160 Develop [swift] 실행시간 측정하기 hooni 2021.09.14 680
1159 Develop [vim] vim 명령으로 &#65279; 문자 제거하기 (remove 65279 bomb) hooni 2021.02.03 1168
1158 Develop [js] show/hide 이벤트 감시 (Observing show/hide event) hooni 2021.02.03 2591
1157 Develop [swift] popToRoot 모달뷰, 네비게이션컨트롤러 한꺼번에 닫기 file hooni 2021.01.29 1388
1156 Develop [swift] NotificationCenter 간단 예제 file hooni 2021.01.27 8121
1155 Develop [kotlin] 코틀린 안드로이드 앱 버전/빌드 정보 hooni 2020.12.15 827
1154 Develop [ubuntu] 우분투 18.04에 PHP5 설치하기 hooni 2020.11.14 950
1153 System/OS [펌] 마이크로서비스, 모노리포, SRE, ... 덮어놓고 구글 따라하면 안 되는 기술들 file hooni 2020.10.15 951
1152 Develop [js] Text 값을 클립보드에 복사하기 hooni 2020.10.10 682
1151 System/OS Apache CORS 설정 1 hooni 2020.09.04 2721
1150 System/OS How to Install and Use wget on Mac file hooni 2020.09.03 1289
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98