Congratulations to Jean_Luc and zielar!
I have been thinking for several days about removing the hashtables from the joining process, and when I finally finish it I find that it had already been implemented by JeanLuc

Now I have applied the same method to join several files in one process, reducing the total time quite a bit.
My approach is to read all the files in the directory at the same time in HASH_ENTRY loop.
Although my code works, it is still in testing and it is possible that it has some bug.
https://github.com/PatatasFritas/FriedKangaroo/blob/merge/Merge.cpp