char *Nome_File = "Suono.wav";
char *argp[4];
argp[0]="dd";
argp[1]= calloc(strlen(Nome_File)+4,sizeof(char));
sprintf(argp[1],"if=%s",Nome_File);
argp[2]="of=/dev/dsp";
argp[3]=NULL;
if (fork()!=0) wait(NULL);
else execvp("dd",argp);
E' il miglior aiuto che ti posso dare:
Non esistono funzioni "standard" che suonano un file (intendo standard lib e standard I/O), quindi i casi sono due
1. O usi un'implementazione (librerie esterne);
2. oppure fai come nel mio codice e usi un programma esterno per suonare il file (assicurati però che il programma da usare non sia invasivo durante l'esecuzione del TUO programma -> ergo, si termini subito appena svolto il compito).