WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 20.06.2008, 14:56   #1
donworld
Newbie
 
Registriert seit: 20.06.2008
Alter: 47
Beiträge: 5


Standard C-Programm unter Linux mit verschiedenen Befehlen

Hallo!

Ich hätte mal ein paar Fragen zu einem C-Programm unter Linux.

1. Welche Rolle spielen dabei die Systemfunktionen fork, wait, execlp und exit?

2. Warum zeigt der Zähler 'count', der die ausgeführten Befehle zählen soll, nicht den richtigen Wert an?

3. Was machen die einzelnen Befehle („ls“, „ps“ und „ln“), die das Programm zur Ausführung bringt, und welche Bedeutung haben ihre Ausgaben auf der
Konsole?

4. Unter welchen Bedingungen funktioniert der 3. Befehl („ln“) und was genau ist seine Wirkung?

5. Was genau geschieht bei dem Versuch, dem 4. Befehl auszuführen? Unter welchen Bedingungen würde dieser Befehl funktionieren?



#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>

#define BUFFERSIZE 100
int main() {
char line[10];
int count = 0;
while( 1 ) {
printf( "Befehlscode eingeben: " );
fgets( line, BUFFERSIZE, stdin );
if( line[0] == '0' ) {
break;
}

if( fork() == 0 ) {
count++;
if( line[0] == '1' ) {
execlp( "ls", "ls", "-li", (char*)NULL );
} else if( line[0] == '2' ) {
execlp( "ps", "ps", "-H", (char*)NULL );
} else if( line[0] == '3' ) {
execlp( "ln", "ln", "x", "y", (char*)NULL );
} else if( line[0] == '4' ) {
execlp( "nonexistent", "x", "y", (char*)NULL );
}
perror( "FEHLER" );
exit( errno );
}
int status;
wait(&status);
}
printf( "Anzahl der ausgefuehrten Befehle: %d\n", count );
}
donworld ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:08 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag