Lupus84
09-05-2007, 09:50
Ich habe folgendes Problem:
Ich möchte im unten stehenden Programm,die Ausgabe"Ping! und Pong!" in eine Datei schreiben, die ich am Ende des Programms wieder ausgebe... dies soll mit den Befehlen: open(),write(),lseek(),read(), close() umgesetzt werden. Ich habe schon überall nachgeschaut aber ich finde kein konkretes Beispiel, welches mir die korrekte Anwenudung bzw. Syntax aufzeigt ...
#include<stdio.h>
#include<signal.h>
void sighand(){
signal(SIGUSR1, &sighand);
printf("Signal SIGUSR1 empfangen. \n\n");
}
int main (){
int i, j, k ;
int k_pid1, k_pid2, status;
signal(SIGUSR1, &sighand);
printf(" \n");
if((k_pid1 = fork()) == 0){
for(i = 1; i <= 6; i++){
pause();
printf("Ping! \n");
kill(getppid(), SIGUSR1);
}
exit(0);
}
if((k_pid2 = fork()) == 0){
for(j = 1; j<= 6; j++){
pause();
printf("Pong! \n");
kill(getppid(), SIGUSR1);
}
exit(0);
}
system("ps");
printf("\n");
printf("Eltern : Eigene Prozess ID ist : %d Kind1 : %d Kind2: %d \n", getpid(), k_pid1, k_pid2);
printf("\n");
for(k=1; k<=6; k++){ //Kindprozesse Kontrolle
sleep(1);
kill(k_pid1,SIGUSR1);
pause();
sleep(1);
kill(k_pid2,SIGUSR1);
pause();
}
waitpid(k_pid1, &status, 0 );
waitpid(k_pid2, &status, 0 );
printf("\n");
printf("Eltern : Beide Kinder sind terminiert!\n");
printf("\n");
return 0;
}
Ich möchte im unten stehenden Programm,die Ausgabe"Ping! und Pong!" in eine Datei schreiben, die ich am Ende des Programms wieder ausgebe... dies soll mit den Befehlen: open(),write(),lseek(),read(), close() umgesetzt werden. Ich habe schon überall nachgeschaut aber ich finde kein konkretes Beispiel, welches mir die korrekte Anwenudung bzw. Syntax aufzeigt ...
#include<stdio.h>
#include<signal.h>
void sighand(){
signal(SIGUSR1, &sighand);
printf("Signal SIGUSR1 empfangen. \n\n");
}
int main (){
int i, j, k ;
int k_pid1, k_pid2, status;
signal(SIGUSR1, &sighand);
printf(" \n");
if((k_pid1 = fork()) == 0){
for(i = 1; i <= 6; i++){
pause();
printf("Ping! \n");
kill(getppid(), SIGUSR1);
}
exit(0);
}
if((k_pid2 = fork()) == 0){
for(j = 1; j<= 6; j++){
pause();
printf("Pong! \n");
kill(getppid(), SIGUSR1);
}
exit(0);
}
system("ps");
printf("\n");
printf("Eltern : Eigene Prozess ID ist : %d Kind1 : %d Kind2: %d \n", getpid(), k_pid1, k_pid2);
printf("\n");
for(k=1; k<=6; k++){ //Kindprozesse Kontrolle
sleep(1);
kill(k_pid1,SIGUSR1);
pause();
sleep(1);
kill(k_pid2,SIGUSR1);
pause();
}
waitpid(k_pid1, &status, 0 );
waitpid(k_pid2, &status, 0 );
printf("\n");
printf("Eltern : Beide Kinder sind terminiert!\n");
printf("\n");
return 0;
}