Devi mettere la readdir() dentro un ciclo, devi leggere i nomi dei file fino a quando c'è qualcosa da leggere dal directory stream dp. E non aprire il file in modalità di scrittura binaria, aprilo in modalità di scrittura testuale ( "w" come secondo argomenti di fopen() ).