01 Ago 2019

c cgi 예제

한 가지 메커니즘은 환경을 사용하는 것입니다. 환경은 한 프로그램이 아니라 사용자 나 프로세스를 대신하여 운영 체제 자체에 의해 유지 되는 변수 집합입니다. 예를 들어 MS-DOS 및 유닉스 시스템에서 PATH 변수에는 실행 프로그램을 검색할 디렉터리 목록이 포함되어 있습니다. 유닉스 시스템에서 다른 일반적인 환경 변수는 HOME(사용자의 홈 디렉토리), TERM(사용자의 터미널 유형) 및 MAIL(사용자의 전자 사서함)입니다. CGI 프로그램의 기본 작동은 매우 간단합니다. 그 일은 즉석에서 웹 페이지를 생성하는 것이므로 표준 출력에 `인쇄`텍스트를 사용하여 수행해야하는 일입니다. 따라서 C에서 CGI 프로그램을 작성할 때 printf를 많이 호출하여 가상 페이지(즉, 빌드하는 페이지)를 포함하는 텍스트를 생성합니다. 일부 printf 호출은 상수 또는 `상용구` 텍스트를 인쇄합니다. 예를 들어, 거의 모든 C-written CGI 프로그램의 처음 몇 줄은 본질적으로 의 줄을 따라 될 것입니다. 그런 다음 데이터가 이미 언급 된 특별히 인코딩 된 형식으로 도착하기 때문에 데이터를 인코딩 (디코딩)합니다. 이 프로그램은 텍스트 입력 필드에 이름 데이터가 있는 양식에 대해 작성되었습니다(실제로 는 이름의 길이만 여기에 문제가 있음).

예를 들어, 사용자가 Hello를 입력하면 거기! 그런 다음 데이터는 데이터=Hello+there%21로 인코딩된 프로그램에 전달됩니다(+로 인코딩된 공간 및 느낌표가 %21로 인코딩). 프로그램의 encode 해제 루틴은 이를 원래 형식으로 다시 변환합니다. 그런 다음 데이터가 고정 된 파일 이름으로 파일에 추가되고 사용자에게 다시 에코됩니다. 이 «Hello world!» 소스 코드 예제를 /var/www/cgi-bin에 저장합니다(존재하지 않는 경우 이 디렉토리 만들기). cgigetval 함수의 내장을 제시하기 전에 실제 예제에서 어떻게 사용할지 살펴보겠습니다. 앞에서 언급했듯이 CGI는 웹 서버의 모든 문서와 마찬가지로 메서드를 사용하여 호출됩니다.