puoi usare la funzione
execvp(char *file_name,char **argv)
filename è il nome del file e argv sono i paramentri da passare..
attenzione però..se la chiamata a execvp ha successo viene eseguito il comando e l esecuzione non torna all istruzione successiva ma finisce con il comando stesso ...
se devi fare altre cose puoi fare
Codice:
pid = fork();
if (pid ==0) execvp(...); /*processo figlio*/
else ( wait(&status) /*processo padre prima di continuare aspetto che termini il processo figlio*/
puoi anche usare execlp(char* filename,char *arg[0],char *arg1[n],...,0)..cambia soltanto come passare i parametri..nel tuo caso
execlp("chmod","chmod","a+x",filename,0);