This file is indexed.

/usr/share/doc/libfcgi0ldbl/fastcgi-prog-guide/ch4tcl.htm is in libfcgi0ldbl 2.4.0-10.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
   <HEAD>
      <TITLE>
         FastCGI Programmer&#39;s Guide - Chapter 4, Developing FastCGI Applications in Tcl
      </TITLE>
<STYLE TYPE="text/css">
 body {
  background-color: #ffffff;
 }
 li.c2 {list-style: none}
 div.c1 {text-align: center}
</STYLE>
   </HEAD>
   <BODY>
      <A HREF="cover.htm">[Top]</A> <A HREF="ch3perl.htm">[Prev]</A> <A HREF="apaman.htm">[Next]</A> <A HREF=
      "ap_guida.htm">[Bottom]</A> 
      <HR>
      <BR>
       <A NAME="3659"></A>
      <DIV CLASS="c1">
         <H1>
            4 Developing FastCGI<BR>
            Applications in Tcl
         </H1>
      </DIV>
      <A NAME="4835"></A>
      <P>
         This chapter explains how to code FastCGI applications in Tcl. Prior to creating a FastCGI application, you
         must have a FastCGI-savvy version of the Tcl interpreter. Open Market develops Tcl binaries for popular
         platforms and makes them available with our developer&#39;s kit.
      </P>
      <P>
         <A NAME="4943"></A> The FastCGI-savvy binaries are extensions of standard Tcl, and are intended to replace
         your existing Tcl installation. There is no need to maintain two versions of Tcl: the version that we supply
         will work fine when invoked from a shell or a CGI program. There are also directions in the developer&#39;s
         kit for how to make your own FastCGI-savvy Tcl, if you need a version for some platform that we don&#39;t
         supply.
      </P>
      <P>
         <A NAME="4221"></A> In many cases, you can convert a Tcl script from CGI to FastCGI by adding a few lines of
         code to an existing script. For more complex scripts, you may also need to rearrange some existing code.
      </P>
      <BR>
      <BR>
      <H1>
         Getting Started
      </H1>
      <A NAME="4223"></A>
      <P>
         The first line of any Tcl script typically specifies the pathname of the Tcl interpreter itself. You must
         specify the pathname of a FastCGI-savvy Tcl.
      </P>
      <P>
         <A NAME="4226"></A> Then, you have to divide FastCGI scripts into the following two sections:
      </P>
      <BR>
      <BR>
      <UL>
         <LI CLASS="c2">
            <A NAME="4227"></A>
         </LI>
         <LI>
            Initialization section, which is executed only once. <A NAME="4228"></A>
         </LI>
         <LI>
            Response loop section, which gets executed every time the FastCGI script gets called.
         </LI>
      </UL>
      <A NAME="4229"></A>
      <P>
         A response loop typically has the following format:
      </P>
      <BR>
      <BR>
<PRE>
<A NAME="4923">while {[FCGI_Accept] &gt;= 0 } {
</A>
<A NAME="4925"># body of response loop
</A>
<A NAME="4367">}
</A>
</PRE>
      <A NAME="4233"></A>
      <P>
         The <CODE>FCGI_Accept</CODE> call returns 0 whenever a client requests the FastCGI script. Otherwise, the
         <CODE>FCGI_Accept</CODE> call returns -1.
      </P>
      <BR>
      <BR>
      <H1>
         Example: TinyFastCGI
      </H1>
      <A NAME="4343"></A>
      <P>
         Here is a simple example of a FastCGI application written in Tcl:
      </P>
      <BR>
      <BR>
<PRE>
<A NAME="4344"></A>
#!fcgi-savvy-tcl

set count 0

# Response Loop
while {[FCGI_Accept] &gt;= 0 } {
        incr count
        puts -nonewline &quot;Content-type: text/html\r\n\r\n&quot;
        puts &quot;&lt;title&gt;FastCGI Hello! (Tcl)&lt;/title&gt;&quot;
        puts &quot;&lt;h1&gt;FastCGI Hello! (Tcl)&lt;/h1&gt;&quot;
        puts &quot;Request number $count running on host  &lt;i&gt;$env(SERVER_NAME)&lt;/i&gt;&quot;
}
</PRE>
      <P>
      </P>
      <HR>
      <BR>
       <A HREF="cover.htm">[Top]</A> <A HREF="ch3perl.htm">[Prev]</A> <A HREF="apaman.htm">[Next]</A> <A HREF=
      "ap_guida.htm">[Bottom]</A> 
      <HR>
      <BR>
       <!-- This file was created with Quadralay WebWorks Publisher 3.0.3 -->
      <!-- -->
      <!-- For more information on how this document, and how the rest of -->
      <!-- this server was created, email yourEmail@xyzcorp.com -->
      <!-- -->
      <!-- Last updated: 04/15/96 08:00:19 -->
   </BODY>
</HTML>