hallo,
ich möchte ein c programm unter unix schreiben der jede minute die datum und die zeit gibt
main()
{
while(1)
{
system(„date“);
sleep(60);
}
}
mein problem:ich möchte dies programm erweitern dass wenn ich
ctrg-c eingebe gibt das programm"byte byte" aus und terminirt.
ich würde sehr dankbar wenn jemand mir helfen kann.
Ich denke du möchtest wenn du ctrl-c eingibst das Programm ordentlich mit Ausgabe terminieren lassen, oder?
Es gibt unter Unix (Linux) den Systemcall „signal“. Das ist eine Art Softwareinterrupt der das Programm zu einer bestimmten Reaktion zwingt. Bei einigen Signals wie KILL ode TERM die nicht verändert werde können, bricht das Programm ab. Es gibt darunter auch einen der für die Behandlung von ctrl-c zuständig ist wenn ich das richtig habe.
Schau mal unter signal.
Einen guten Artikel dazu gibt es im Linux-Magazin
http://www.linux-magazin.de/ausgabe/1998/11/System/s…
Viel Spaß
Karsten
hallo,danke für die antwort
ich habe probiert signal aber hat nicht geklapt.
#include
#include
#include
void catcher(int);
main()
{
signal(SIGINT, catcher);
while(1)
{
system(„date“);
sleep(60);
}
void catcher(int)
{
printf(„bye bye“);
exit (1);
}