glibc
Numeric conversion functions
atof, atoi, atol, and atoll are UNSAFE:
If the value of the result cannot be represented, the behavior is undefined
Path resolution vs. path canonicalization
What's the different b/w canonicalize_file_name() ( realpath()) and readlink()?
-
readlink()need as input a symbolic link, and jut read its value. Period. -
canonicalize_file_name()/realpath(): - always returns an absolute file path.
- recursively resolves all symbolic link.
- does not accept circular loops in symbolic link.
- does not accept symbolic link pointing to non-existing files.
- to succeed, it requires the resolved path to exist.