I'm looking for an example of how to use the realpath function in a C program. I can't seem to find one on the web or in any of my C programming books.
The realpath() function derives, from the path name pointed to by file_name, an absolute path name that names the same file, whose resolution does not involve ".","..", or symbolic links. The generated path name is stored, up to a maximum of PATH_MAX bytes, in the buffer pointed to by resolved_name.
Definition and Usage The realpath() function returns the absolute pathname. This function removes all symbolic links (like '/./', '/../' and extra '/') and returns the absolute pathname.
USAGE. The realpath() function operates on null-terminated strings. One should have execute permission on all the directories in the given and the resolved path. The realpath() function may fail to return to the current directory if an error occurs.
The realpath command expands all symbolic links and resolves references to /./, /../ and extra '/' characters in the null-terminated string named by path to produce a canonicalized absolute pathname.
Note
realpath()
function is not described in the C Standard
Sample Code
#include <limits.h> /* PATH_MAX */
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char buf[PATH_MAX]; /* PATH_MAX incudes the \0 so +1 is not required */
char *res = realpath("this_source.c", buf);
if (res) { // or: if (res != NULL)
printf("This source is at %s.\n", buf);
} else {
char* errStr = strerror(errno);
printf("error string: %s\n", errStr);
perror("realpath");
exit(EXIT_FAILURE);
}
return 0;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With