error de juego: error de AudioFileOpen (-43)

Código:

#include #include int main (int argc, char *argv[]) { char folderPath[1024]; int i = 0; for (i; i < (strlen(argv[0]) - 7); i++) { folderPath[i] = argv[0][i]; } printf("Command: afplay %ssong.mp3\n", folderPath); system("afplay %ssong.mp3", folderPath); return 0; } 

Toda la salida:

 Command: afplay /Users/carloabelli/Desktop/FUNNY/song.mp3 Error: AudioFileOpen failed (-43) 

Cuando ejecuto el comando desde la terminal funciona perfectamente. Me preguntaba qué va mal.

system() no usa una cadena de formato. Toma el comando entero como una cadena literal. Use sprintf() para formatear su comando en un búfer y luego enviar ese búfer al sistema.

 char buf[1024]; snprintf(buf, 1024, "afplay %ssong.mp3", folderPath); system(buf); 

O algo por el estilo.