( uid_6201 | 2022. 10. 05., sze – 11:13 )

Nem tudom mi a görcs tárgya. Csinálsz egyetlen brutál nagy fájlt, amiben szép sorban egymás után leteszed a wav-okat.
De mielőtt leraknád, megcsinálod a katalógust és innentől csak pointerművelet.

struct wav {
   char azonosito[MAXHOSSZ];
   size_t kezdete;
   // size_t hossza;  -- ez végülis elhagyható, hiszen a következő kezdetéből tudod, egymás után vannak rakva.
} leiro[MAXDARABSZAM];

Aztán ez mögé jöhet a sok-sok wav.
Itt tényleg nincs jogosultságkezelés meg semmi, hiszen ez az egyetlen brutál nagy fájl folyamatosan nyitva van, csak a fseek() és a fread() megy. Jobb esetben pedig mmap() és simán RAM címzéssel kardozol benne.