I am looking to develop an audio player that repetitively plays audio files. I am using the sox library. I have tried the following code snippet but it only plays the audio file once and doesn't play it next time. int main(int argc, char *argv[]) { if (argc != 4) { printf ("Incorrect Arguments\n"); exit (-1); } int i, sox_status, status; /* Sox File Descriptor */ sox_format_t *sox_fd1, *sox_fd2; size_t sox_size = 1, sox_tsize = 0; sox_sample_t sox_buf[1000]; sox_uint64_t seek = 0; /* Initialization of all format handlers */ sox_format_init (); /* Open Wav file for reading */ sox_fd1 = sox_open_read (argv[1], NULL, NULL, "wav"); sox_fd2 = sox_open_write ("default", &sox_fd1->signal, NULL, "alsa", NULL, NULL); for (i = 0; i < 5; i++) { while (sox_size) { sox_size = sox_read (sox_fd1, sox_buf, 100000); sox_write (sox_fd2, sox_buf, sox_size); } sox_size = 1; sox_status = sox_seek (sox_fd1, 0L, SOX_SEEK_SET); } /* Close Wav file */ sox_close (sox_fd1); sox_close (sox_fd2); /* De-initialization of f ile format handlers */ sox_format_quit (); return 0; } It seems that sox_seek is not functioning properly, but the function sox_seek returns successfully. What can be the problem?