I believe that the reason there are *'s after some files is
because ls is aliased to ls -F, which will add a * to the end
of files that are executeable. It will also add some other
characters onto files that are directories, symlinks, etc....
You won't run into that using readdir though. Hope this helps!