cvs commit: de-docproj/books/developers-handbook/x86 chapter.sgml

From: Aron Schlesinger <as(at)doc.bsdgroup.de>
Date: Wed, 29 Aug 2007 19:37:48 GMT

as 2007-08-29 19:37:48 UTC

  FreeBSD ports repository

  Modified files:
    books/developers-handbook/x86 chapter.sgml
  Log:
  Kapitel 12.10 uebersetzt.
  
  Uebersetzt und gesendet von: Fabian Ruch
  
  Ein par SGML-Tags gefixt:
    <titel>/<title>, <acronym>/</acronym>, <listitme>/<listitem>,
    </filename>/</filname>, </unserinput></userinput>
  
  Revision Changes Path
  1.8 +127 -147 de-docproj/books/developers-handbook/x86/chapter.sgml
  
  Index: chapter.sgml
  ===================================================================
  RCS file: /home/cvs/de-docproj/books/developers-handbook/x86/chapter.sgml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -I$FreeBSDde.*$ -r1.7 -r1.8
  --- chapter.sgml 23 Aug 2007 15:49:53 -0000 1.7
  +++ chapter.sgml 29 Aug 2007 19:37:48 -0000 1.8
  @@ -1478,11 +1478,12 @@
     <para>Die Kommandozeilenparameter folgen einander, alle
       <varname>argc</varname>. Von diesen wird &uuml;blicherweise als
       <varname>argv</varname> wie "argument value(s)" gesprochen. So
  - erhalten wir <varname>argv[0]</varname>, <varname>argv[1]</varname>,
  - <varname>...</varname> und <varname>argv[argc-1]</varname>. Dies
  - sind nicht die eigentlichen Parameter, sondern Zeiger (Pointer) auf
  - diese, d.h., Speicheradressen der tats&auml;chlichen Parameter. Die
  - Parameter selbst sind durch NULL beendete Zeichenketten.</para>
  + erhalten wir <varname>argv[0]</varname>,
  + <varname>argv[1]</varname>, <varname>...</varname> und
  + <varname>argv[argc-1]</varname>. Dies sind nicht die eigentlichen
  + Parameter, sondern Zeiger (Pointer) auf diese, d.h.,
  + Speicheradressen der tats&auml;chlichen Parameter. Die Parameter
  + selbst sind durch NULL beendete Zeichenketten.</para>
   
     <para>Der <varname>argv</varname>-Liste folgt ein NULL-Zeiger, was
       einfach eine <constant>0</constant> ist. Es gibt noch mehr, aber
  @@ -1764,124 +1765,107 @@
   </sect1>
   
   <sect1 id="x86-environment">
  -<title>&unix; Environment</title>
  + <title>Die &unix;-Umgebung</title>
   
  -<para>
  -An important &unix; concept is the environment, which is defined by
  -<emphasis>environment variables</emphasis>. Some are set by the system, others
  -by you, yet others by the <application>shell</application>, or any program
  -that loads another program.
  -</para>
  -
  -<sect2 id="x86-find-environment">
  -<title>How to Find Environment Variables</title>
  -
  -<para>
  -I said earlier that when a program starts executing, the stack
  -contains <varname>argc</varname> followed by the NULL-terminated
  -<varname>argv</varname> array, followed by something else. The
  -"something else" is the <emphasis>environment</emphasis>, or,
  -to be more precise, a NULL-terminated array of pointers to
  -<emphasis>environment variables</emphasis>. This is often referred
  -to as <varname>env</varname>.
  -</para>
  -
  -<para>
  -The structure of <varname>env</varname> is the same as that of
  -<varname>argv</varname>, a list of memory addresses followed by a
  -NULL (<constant>0</constant>). In this case, there is no
  -<varname>"envc"</varname>&mdash;we figure out where the array ends
  -by searching for the final NULL.
  -</para>
  -
  -<para>
  -The variables usually come in the <varname>name=value</varname>
  -format, but sometimes the <varname>=value</varname> part
  -may be missing. We need to account for that possibility.
  -</para>
  -
  -</sect2>
  -
  -<sect2 id="x86-webvar">
  -<title>webvars</title>
  -
  -<para>
  -I could just show you some code that prints the environment
  -the same way the &unix; <application>env</application> command does. But
  -I thought it would be more interesting to write a simple
  -assembly language CGI utility.
  -</para>
  -
  -<sect3 id="x86-cgi">
  -<title>CGI: A Quick Overview</title>
  -
  -<para>
  -I have a
  -<ulink url="http://www.whizkidtech.redprince.net/cgi-bin/tutorial">detailed
  -<acronym>CGI</acronym> tutorial</ulink> on my web site,
  -but here is a very quick overview of <acronym>CGI</acronym>:
  -</para>
  -
  -<itemizedlist>
  -<listitem>
  -<para>
  -The web server communicates with the <acronym>CGI</acronym>
  -program by setting <emphasis>environment variables</emphasis>.
  -</para>
  -</listitem>
  -
  -<listitem>
  -<para>
  -The <acronym>CGI</acronym> program
  -sends its output to <filename>stdout</filename>.
  -The web server reads it from there.
  -</para>
  -</listitem>
  + <para>Ein entscheidendes Konzept hinter &unix; ist die Umgebung, die
  + durch <emphasis>Umgebungsvariablen</emphasis> festgelegt wird.
  + Manche werden vom System gesetzt, andere von Ihnen und wieder
  + andere von der <application>shell</application> oder irgendeinem
  + Programm, das ein anderes l&auml;dt.</para>
  +
  + <sect2 id="x86-find-environment">
  + <title>Umgebungsvariablen herausfinden</title>
  +
  + <para>Ich sagte vorher, dass wenn ein Programm mit der
  + Ausf&uuml;hrung beginnt, der Stack <varname>argc</varname>
  + gefolgt vom durch NULL beendeten <varname>argv</varname>-Array
  + und etwas Anderem enth&auml;lt. Das "etwas Andere" ist die
  + <emphasis>Umgebung</emphasis> oder, um genauer zu sein, ein
  + durch NULL beendetes Array von Zeigern auf
  + <emphasis>Umgebungsvariablen</emphasis>. Davon wird oft als
  + <varname>env</varname> gesprochen.</para>
  +
  + <para>Der Aufbau von <varname>env</varname> entspricht dem von
  + <varname>argv</varname>, eine Liste von Speicheradressen gefolgt
  + von NULL (<constant>0</constant>). In diesem Fall gibt es kein
  + <varname>"envc"</varname>&mdash;wir finden das Ende heraus,
  + indem wir nach dem letzten NULL suchen.</para>
  +
  + <para>Die Variablen liegen normalerweise in der Form
  + <varname>name=value</varname> vor, aber manchmal kann der
  + <varname>=value</varname>-Teil fehlen. Wir m&uuml;ssen diese
  + M&ouml;glichkeit in Betracht ziehen.</para>
  + </sect2>
   
  -<listitem>
  -<para>
  -It must start with an <acronym>HTTP</acronym>
  -header followed by two blank lines.
  -</para>
  -</listitem>
  + <sect2 id="x86-webvar">
  + <title>webvars</title>
   
  -<listitem>
  -<para>
  -It then prints the <acronym>HTML</acronym>
  -code, or whatever other type of data it is producing.
  -</para>
  -</listitem>
  + <para>Ich k&ouml;nnte Ihnen einfach etwas Code zeigen, der die
  + Umgebung in der Art vom &unix;-Befehl
  + <application>env</application> ausgibt. Aber ich dachte, dass es
  + interessanter sei, ein einfaches CGI-Werkzeug in Assembler zu
  + schreiben.</para>
   
  -</itemizedlist>
  -<note>
  -<para>
  -While certain <emphasis>environment variables</emphasis> use
  -standard names, others vary, depending on the web server. That
  -makes <application>webvars</application>
  -quite a useful diagnostic tool.
  -</para>
  -</note>
  + <sect3 id="x86-cgi">
  + <title>CGI: Ein kurzer &Uuml;berblick</title>
   
  -</sect3>
  + <para>Ich habe eine <ulink
  + url="http://www.whizkidtech.redprince.net/cgi-bin/tutorial">detaillierte
  + <acronym>CGI</acronym>-Anleitung</ulink> auf meiner Webseite,
  + aber hier ist ein sehr kurzer &Uuml;berblick &uuml;ber
  + <acronym>CGI</acronym>:</para>
  +
  + <itemizedlist>
  + <listitem>
  + <para>Der Webserver kommuniziert mit dem
  + <acronym>CGI</acronym>-Programm, indem er
  + <emphasis>Umgebungsvariablen</emphasis> setzt.</para>
  + </listitem>
  +
  + <listitem>
  + <para>Das <acronym>CGI</acronym>-Programm schreibt seine
  + Ausgabe auf <filename>stdout</filename>. Der Webserver
  + liest von da.</para>
  + </listitem>
  +
  + <listitem>
  + <para>Die Ausgabe muss mit einem
  + <acronym>HTTP</acronym>-Kopfteil gefolgt von zwei
  + Leerzeilen beginnen.</para>
  + </listitem>
  +
  + <listitem>
  + <para>Das Programm gibt dann den <acronym>HTML</acronym>-Code
  + oder was f&uuml;r einen Datentyp es auch immer verarbeitet
  + aus.</para>
  + </listitem>
  +
  + <listitem>

----------------------------------------------
Diff block truncated. (Max lines = 200)
----------------------------------------------

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-cvs-doc" in the body of the message
Received on Wed 29 Aug 2007 - 21:39:38 CEST

search this site