The default implementation of this function uses semihosting.
rename() causes the file whose name is
the string pointed to by old to be subsequently
known by the name given by the string pointed to by new.
The file named old is effectively removed.
If a file named by the string pointed to by new exists
prior to the call of the rename() function,
the behavior is implementation-defined.