Napisałem prosty program na zaliczenie, który ma za zadanie zarządzać sygnałami w systemie Linux.
Oto kod źródłowy tego programu:
#include
#include
#include
void menu(char* program);
void przechwyc();
main(int argc, char** argv) {
int sygnal;
if (argc != 3) {
menu(argv[0]);
return 0;
}
if(argv[1][0]=='0') {
sygnal=SIGINT;
}
else {
if (argv[1][0]=='1'){
sygnal=SIGSTOP;
}
else {
usage(argv[0]);
return 0;
}
switch (argv[2][0]){
case 'd': {
printf("Obsluga domyslna");
signal(sygnal,SIG_DFL);
break;
}
case 'i': {
printf("Ignorowanie");
signal(sygnal,SIG_IGN);
break;
}
case 'p': {
printf("Przechwytywanie");
signal(sygnal,przechwyc);
break;
}
default: {
menu(argv[0]);
return 0;
break;
}
}
sleep(5);
return 0;
}
void menu(char* program) {
printf("URUCHOMILES PROGRAM Z BLEDNYMI ARGUMENTAMI! \n");
printf("Zapoznaj sie z ponizsza instrukcja. \n\n");
printf("Oto wzor: \n");
printf("%s \n \n", program);
printf("Dostepne argumenty dla opcji : \n");
printf("0 - SIGINT (zakonczenie procesu) \n");
printf("1 - SIGSTOP (zatrzymanie procesu) \n \n");
printf("Dostepne argumenty dla opcji : \n");
printf("'d' - domyslna obsluga sygnalu \n");
printf("'i' - ignorowanie sygnalu \n");
printf("'p' - przechwycenie sygnalu\n");
}
void przechwyc() {
printf("Wybrales operacje przechytywania sygnalu - SYGNAL PRZECHWYCONY");
}
Podczas próby kompliacji wywala mi błąd:
Co to za błąd i jak go naprawić?
Proszę o pomoc, z góry bardzo dziękuje
Poazdrawiam!