N = strtol (argv[1],NULL,10) pone in n un valore numerico di tipo long int ricavato convertendo una stringa C contenuta in argv[1] (che si spera contenga una rappresentazione in formato stringa di un numero a base 10).
Di solito, per verificare che la lettura e conversione della stringa abbia avuto successo, si passa un puntatore a char* al posto di NULL. La conversione si considera riuscita se il puntatore ottenuto è diverso da quello alla prima stringa. Ad esempio...
char stringa[] = "1250";
char *fine;
long int n = strtol( stringa, &fine, 10 );
if( fine != stringa )
// lettura e conversione sono riuscite ed n contiene il valore letto (1250)
else
// lettura e conversione non sono riuscite ed n (se ben ricordo) contiene 0
// comunque sia, fine punta al carattere al quale e' stata interrotta la lettura