Actual source code: rpath.c
petsc-3.6.4 2016-04-12
2: #include <petscsys.h>
3: #if defined(PETSC_HAVE_PWD_H)
4: #include <pwd.h>
5: #endif
6: #include <ctype.h>
7: #include <sys/stat.h>
8: #if defined(PETSC_HAVE_UNISTD_H)
9: #include <unistd.h>
10: #endif
11: #if defined(PETSC_HAVE_SYS_UTSNAME_H)
12: #include <sys/utsname.h>
13: #endif
14: #if defined(PETSC_HAVE_SYS_SYSTEMINFO_H)
15: #include <sys/systeminfo.h>
16: #endif
20: /*@C
21: PetscGetRelativePath - Given a filename, returns the relative path (removes
22: all directory specifiers).
24: Not Collective
26: Input parameters:
27: + fullpath - full pathname
28: . path - pointer to buffer to hold relative pathname
29: - flen - size of path
31: Level: developer
33: Concepts: relative path
34: Concepts: path^relative
36: .seealso: PetscGetFullPath()
37: @*/
38: PetscErrorCode PetscGetRelativePath(const char fullpath[],char path[],size_t flen)
39: {
40: char *p;
44: /* Find string after last / or entire string if no / */
45: PetscStrrchr(fullpath,'/',&p);
46: PetscStrncpy(path,p,flen);
47: return(0);
48: }