Допустим, у вас есть 9 в качестве аргумента.Вы сказали, что получаете 57, значение ascii.
Используйте тот факт, что int num = *arg[1] - '0'
вернет вам нужное число.
если это большее число, например, 572, тогда вам нужно
char *p = argv[1];
int nr = 0;
int i;
for(i =0; i< strlen(p); i++) {
nr = 10 * nr + p[i] - '0';
}
Добавьте некоторую проверку ошибок и все готово.
Или, в зависимости от того, что у вас есть, вы можете использовать некоторые функции, такие как atoi (), sscanf () и т. Д.