Convert a stat structure from one form to another
Synopsis:
#include <sys/stat.h>
int stat_convert_form( int src_form,
                       const void *src_stat,
                       int dst_form,
                       void *dst_stat,
                       unsigned max_dst );
 
Arguments:
- src_form
 
- The form of the source stat structure; one of:
  
  - _STAT_FORM_UNSET — unknown; this is assumed to be the same as 
    _STAT_FORM_T32_2001
    
  
 
  - _STAT_FORM_T32_2001 — 32-bit fields, POSIX 2001
 
  - _STAT_FORM_T32_2008 — 32-bit fields, POSIX 2008
 
  - _STAT_FORM_T64_2008 — 64-bit fields, POSIX 2008
 
  - _STAT_FORM_SYS_2008 — _STAT_FORM_T32_2008 in programs compiled
    for a 32-bit architecture, or _STAT_FORM_T64_2008 in programs compiled for a 64-bit architecture.
  
 
  - _STAT_FORM_PREFERRED — the preferred form:
    _STAT_FORM_T32_2001 in programs compiled for a 32-bit architecture,
    or _STAT_FORM_T64_2008 in programs compiled for a 64-bit architecture.
  
 
  
 
- src_stat
 
- A pointer to the stat structure that you want to convert.
 
- dst_form
 
- The form of stat structure that you want.
  This must be one of the _STAT_FORM_* types listed above, except that you can't specify it
  to be _STAT_FORM_UNSET.
 
- dst_stat
 
- A pointer to a stat structure where the function can store the information.
 
- max_dst
 
- The size of the area that dst_stat points to.
 
 
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
 
Description:
The stat_convert_form() function converts a given
struct stat
structure into another form.
The forms depend on the architecture (32- or 64-bit) and on the version of POSIX (2001 or 2008).
The POSIX 2008 forms include st_mtim,
st_atim, and st_ctim fields, of type struct timespec,
that support nanosecond-resolution timestamps.
 
Returns:
The size of the converted structure, or a negative error code:
- -EINVAL
 
- The source or destination form is invalid.
 
- -EOPNOTSUP
 
- The conversion from src_form to dst_form isn't supported.
 
- -EOVERFLOW
 
- The converted structure is larger than max_dst, or
  the tv_sec member of the st_mtim,
  st_atim, or st_ctim field is greater than will fit in
  the 32-bit version of struct timespec.
 
 
Classification:
QNX Neutrino
| Safety: | 
  | 
| Cancellation point | 
No | 
| Interrupt handler | 
Yes | 
| Signal handler | 
Yes | 
| Thread | 
Yes |