home *** CD-ROM | disk | FTP | other *** search
/ PC Extra Super CD 1998 January / PCPLUS131.iso / DJGPP / V2 / DJLSR201.ZIP / src / libc / dos / compat / d_getftm.txh < prev    next >
Encoding:
Text File  |  1995-10-09  |  1.8 KB  |  61 lines

  1. @node _dos_getftime, dos
  2. @subheading Syntax
  3.  
  4. @example
  5. #include <dos.h>
  6.  
  7. unsigned int _dos_getftime(int handle, unsigned int *p_date, unsigned *p_time);
  8. @end example
  9.  
  10. @subheading Description
  11.  
  12. This function gets the date and time of the given file and puts these
  13. values into @var{p_date} and @var{p_time} variable. The meaning of
  14. DOS date in the @var{p_date} variable is the following:
  15.  
  16. @example
  17. F   E   D   C   B   A   9   8   7   6   5   4   3   2   1   0  (bits)
  18. X   X   X   X   X   X   X   X   X   X   X   X   X   X   X   X
  19. *-----------------------*   *-----------*   *---------------*
  20.         year                    month              day
  21.  
  22. year  = 0-119 (relative to 1980)
  23. month = 1-12
  24. day   = 1-31
  25. @end example
  26.  
  27. The meaning of DOS time in the @var{p_time} variable is the following:
  28.  
  29. @example
  30. F   E   D   C   B   A   9   8   7   6   5   4   3   2   1   0
  31. X   X   X   X   X   X   X   X   X   X   X   X   X   X   X   X
  32. *---------------*   *-------------------*   *---------------*
  33.       hours              minutes                seconds
  34.  
  35. hours   = 0-23
  36. minutes = 0-59
  37. seconds = 0-29 in two-second intervals
  38. @end example
  39.  
  40. @xref{_dos_setftime}.
  41.  
  42. @subheading Return Value
  43.  
  44. Returns 0 if successful and return DOS error on error (and sets
  45. @var{errno}=EBADF).
  46.  
  47. @subheading Example
  48.  
  49. @example
  50. unsigned int handle, date, time;
  51.  
  52. _dos_open("FOO.DAT", O_RDWR, &handle);
  53. _dos_gettime(handle, &date, &time);
  54. _dos_close(handle);
  55. printf("FOO.DAT date and time is: %04u-%02u-%02u %02u:%02u:%02u.\n",
  56.        /*       year                      month              day    */
  57.        ((date >> 9) & 0x7F) + 1980U, (date >>  5) & 0x0F, date & 0x1F,
  58.        /*       hour                minute           second         */
  59.        (time >> 11) & 0x1F, (time >>  5) & 0x3F, (time & 0x1F) * 2);
  60. @end example
  61.