getwd returns a character string or NULL if the working
directory is not available.
On Windows the path returned will use / as the path separator
and be encoded in UTF-8. The path will not have a trailing /
unless it is the root directory (of a drive or share on Windows).
setwd returns the current directory before the change,
invisibly and with the same conventions as getwd. It will give
an error if it does not succeed (including if it is not implemented).