Actual source code: rpath.c
petsc-3.13.6 2020-09-29
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
18: /*@C
19: PetscGetRelativePath - Given a filename, returns the relative path (removes
20: all directory specifiers).
22: Not Collective
24: Input parameters:
25: + fullpath - full pathname
26: . path - pointer to buffer to hold relative pathname
27: - flen - size of path
29: Level: developer
32: .seealso: PetscGetFullPath()
33: @*/
34: PetscErrorCode PetscGetRelativePath(const char fullpath[],char path[],size_t flen)
35: {
36: char *p;
40: /* Find string after last / or entire string if no / */
41: PetscStrrchr(fullpath,'/',&p);
42: PetscStrncpy(path,p,flen);
43: return(0);
44: }