Date: 2016-07-24T16:48:02+00:00

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

      2: #include <petscsys.h>
      3: #if defined(PETSC_HAVE_SYS_TIME_H)
      4: #include <sys/time.h>
      5: #endif
      6: #include <time.h>
      7: #if defined(PETSC_NEEDS_GETTIMEOFDAY_PROTO)
      8: PETSC_EXTERN int gettimeofday(struct timeval*,struct timezone*);
      9: #endif

     11: /*
     12:   This function is called once during the initialize stage.
     13:   It stashes the timestamp, and uses it when needed. This is so that
     14:   error handlers may report the date without generating possible
     15:   additional system errors during the call to get the date.

     17: */
     20: /*@C
     21:     PetscGetDate - Gets the current date.

     23:    Not collective

     25:   Input Parameter:
     26: .  len - length of string to hold date

     28:   Output Parameter:
     29: .  date - the date

     31:   Level: beginner

     33:     This function DOES make a system call and thus SHOULD NOT be called
     34:     from an error handler.

     36: @*/
     37: PetscErrorCode  PetscGetDate(char date[],size_t len)
     38: {
     39:   char           *str=NULL;
     40: #if defined(PETSC_HAVE_TIME)
     41:   time_t         aclock;
     42: #else
     43:   struct timeval tp;
     44: #endif

     48: #if defined(PETSC_HAVE_TIME)
     49:   time(&aclock);
     50:   PetscStrncpy(date,asctime(localtime(&aclock)),len);
     51: #else
     52:   gettimeofday(&tp,(struct timezone*)0);
     53:   PetscStrncpy(date,asctime(localtime((time_t*)&tp.tv_sec)),len);
     54: #endif
     55:   /* now strip out the new-line chars at the end of the string */
     56:   PetscStrstr(date,"\n",&str);
     57:   if (str) str[0] = 0;
     58:   return(0);
     59: }