INSTITUT FÜR INFORMATIK
DER LUDWIG-MAXIMILIANS-UNIVERSITÄT MÜNCHEN

Lehr- und Forschungseinheit für Kommunikationssysteme und Systemprogrammierung

Systempraktikum - Sommersemester 2004

Prof. Dr. H.-G. Hegering
Martin Sailer Harald Rölle

Blatt 0- Einführung


Praktische Aufgaben (Blatt 0)

Die Aufgabe des Einführungsblattes ist es, Sie mit dem Editor xemacs ([Scho 92], [Came 96]) als Programmierumgebung vertraut zu machen. Es soll ein einfaches C-Programm erstellt und mit Hilfe des GNU C-Compilers gcc übersetzt werden. Dabei sollen Sie mehrere Varianten kennenlernen, um Ihr Programm zu übersetzen. Anschließend sollen Sie ein Programm mit Hilfe des Debuggers ddd debuggen, um einen eingebauten Fehler zu finden und korrigieren.


Aufgabe P-0-1

Rufen Sie den xemacs auf und machen Sie sich mit seinen Funktionen vertraut. Mit Control+h und t können Sie ein Tutorium starten. Öffnen Sie nun die Datei gedicht.txt - wie Sie sehen sind einige Zeilen und Wörter durcheinandergeraten. Benutzen Sie nun die Editierbefehle von xemacs, um den Text in seinen Originalzustand zu versetzen1.


Aufgabe P-0-2

Schreiben Sie ein C-Programm, das ``Hello World'' auf die Bildschirm ausgibt. Verwenden Sie hierzu das unten angegebene Rahmen-Programm . Der grundlegende Aufbau eines Programms in ANSI-C ist in [KeRi 90] beschrieben, beachten Sie dabei die Verwendung von #include und main(). Übersetzen Sie das Programm mit:
gcc -ansi -pedantic -Wall prog-0-2.c -o prog-0-2


/*******************************************************************
* Rahmen fuer Aufgabe P-0-2                                        *
*******************************************************************/

#include <???>              /* Header-Datei fuer die Ein-/Ausgabe */

int main(void)              /* Hauptprogramm                      */
{
  printf(???)               /* Ausgabe auf den Bildschirm         */

  return(0);                /* Rueckgabewert der Funktion         */
}                           /* Ende                               */
 


Aufgabe P-0-3

Übersetzen Sie das unten stehende Programm mit Hilfe der verschiedenen Möglichkeiten, die Ihnen unter xemacs geboten werden und führen Sie es anschließend aus:

  1. Übersetzen des Programm in einem xterm-Fenster mit:
    gcc prog-0-3.c -o prog-0-3
  2. Übersetzen des Programm in einem xterm-Fenster mit:
    gcc -ansi -pedantic -Wall prog-0-3.c -o prog-0-3
    Beachten Sie hierbei die ausgegebenen Fehlermeldungen und Warnungen, und sorgen Sie für deren Beseitigung.
  3. Übersetzen des Programm unter xemacs mit Hilfe des Compile-Icons oder des Compile-Befehls im Menue Tools. Kopieren Sie zuvor das unten angegebene Makefile ([OrTa 91] [Fisc 96]) unter dem selben Namen in das Verzeichnis, in dem sich das Programm befindet.


/*******************************************************************
* Rahmen fuer Aufgabe P-0-3                                        *
*******************************************************************/
 
#include <stdio.h>          /* Header-Datei fuer die Ein-/Ausgabe */
 
int main(void)
{
  int i,j;                            /* Definition der Variablen */
  float f;
 
  i=5;                                /* Zuweisung der Werte      */
  f=2.005;
 
  printf("Dies ist ein kleines Testprogramm,\n");
  printf("das die Zahlen i=%d und f=%d multipliziert.\n\n",i,f);
 
  j=i*f;
 
  printf("Das Ergebnis der Multiplikation von %d*%d ist %d.\n\n",i,f,j);
 
  return(0);
}
 


##############################
#          Makefile          #
##############################

CC     = gcc
CFLAGS = -ansi -pedantic -Wall
 
all: prog-0-3

prog-0-3: prog-0-3.c
	$(CC) $(CFLAGS) prog-0-3.c -o prog-0-3

clean:
	rm -f core prog-0-3.o prog-0-3
 


Aufgabe P-0-4

Informieren Sie sich über die Funktionsweise des Debuggers ddd, dazu können Sie entweder das Manual ddd verwenden oder im ddd auf Help->DDD-Reference klicken. Sie können auch mit der Maus auf eine Symbol zeigen und die F1 Taste drücken um Informationen zu erhalten. Control+F1 sagt Ihnen was Sie als nächstes tun können. Versuchen Sie nun den eingebauten Fehler im Programm der Aufgabe P-0-3 mit Hilfe des Debuggers zu finden und zu korrigieren.


References

[Came 96]
Eric Raymond Debra Cameron, Bill Rosenblatt, Learning GNU Emacs, Second Edition, O'Reilly and Associates, 2 Auflage, 1996, ISBN 1-56592-152-6, 0001/94 A 3899.

[Fisc 96]
Fischer Stefan, Netzwerkprogrammierung unter LINUX und UNIX, Hanser, 1 Auflage, 1996, ISBN 3-446-18677-8, 0001/96 A 2407.

[KeRi 90]
R. Kernighan und D. Ritchie, Programmieren in C - Zweite Ausgabe: ANSI-C, Carl Hanser Verlag, 1990, ISBN 3-446-15497-3, PRO 12 Ker, 0003/DAT 358 L 275(2), LB 25 X 3950.

[OrTa 91]
S. Talbott A. Oram, Managing Projects With MAKE, O'Reilly and Associates, 1991, ISBN 0-937175-18-8, SOF 20 Ora 1.

[Scho 92]
Michael A. Schoonover, GNU Emacs: Unix text editing and programming, Addison-Wesley, 1 Auflage, 1992, ISBN 0-201-56345-2, 0001/94 A 3608.


Footnotes:

1Goethes Original ist unter Projekt Gutenberg einzusehen.


File translated from TEX by TTH, version 2.90.
On 1 May 2001, 16:13.