Using int for boolean values is a long tradition. Since there is now
substantial standardization for boolean types in C, use the standards
and have these booleans be bool instead.
cp: make buffer local to copy_fallback()
As the copy buffer isn't used anywhere else, it should be local instead
of being passed in each time. Previously it had been static to
copy_file().
cp: fix operation on non-bleeding edge
copy_file_range() is only available on *very* recent versions of
FreeBSD. As such we need to handle ENOSYS indicating the system call
is unavailable.
cp: clean up after test cases
This ensures current tests won't interfere with tests added in the
future. Incremental cleaning can also be used as a secondary test,
files being left behind suggests problems somewhere.