Date: 2016-07-24T16:47:26+00:00

Actual source code: rpath.c
petsc-3.7.3 2016-07-24
Report Typos and Errors

      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: }