Task 2: Esecuzione e terminazione

Il programma checkPIN chiede un PIN e ne verifica la correttezza. Osserviamo in particolare:

  • Gli argomenti: il programma checkPIN riceve il PIN come argomento da linea di comando e controlla se è corretto o meno.
  • Lo stato di terminazione:
    • se l’operazione ha avuto successo, checkPIN termina con exit(0);
    • se l’operazione fallisce, checkPIN termina con exit(1).;
    • nel caso di invocazione sbagliata (ad esempio senza passare il PIN), checkPIN termina con exit(2).

Testate i tre casi descritti sopra come segue. Notate che in bash, per poter osservare lo stato di terminazione è sufficiente stampare il valore della variabile $?, che contiene il valore della exit dell’ultimo programma eseguito:

$ ./checkPIN 
Utilizzo: ./checkPIN PIN
(Il PIN è di 5 cifre e può iniziare per 0!)
$ echo $?          # mostra il valore della exit
2                  # invocazione sbagliata, exit(2)

$ ./checkPIN 12345
PIN 12345 errato
$ echo $?          # mostra il valore della exit
1                  # PIN errato, exit(1)

$ ./checkPIN *****  # PIN corretto (se lo sapete ;)
PIN ***** corretto! >>> Sei autenticato <<<

$ echo $?          # mostra il valore della exit
0                  # PIN corretto, exit(0)

Come si legge nell’output della prima esecuzione, il PIN è di 5 cifre e può iniziare per zero!

Se vi è tutto chiaro, è ora di iniziare a scrivere il programma di cracking (Task 3)!