diff options
Diffstat (limited to 'unix/boot/bootlib/osgetowner.c')
-rw-r--r-- | unix/boot/bootlib/osgetowner.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/unix/boot/bootlib/osgetowner.c b/unix/boot/bootlib/osgetowner.c new file mode 100644 index 00000000..489997c1 --- /dev/null +++ b/unix/boot/bootlib/osgetowner.c @@ -0,0 +1,28 @@ +/* Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + */ + +#include <sys/types.h> +#include <sys/stat.h> +#include "bootlib.h" + + +/* OS_GETOWNER -- Get the user and group identifications for a file. This is + * not a required function and is expected to rarely work when transporting + * files to a host at a different site. Nonetheless it is useful when moving + * files between compatible hosts at a single site, so we make use of it in + * case it works. It is sufficient to merely set uid and gid to 0 and return. + */ +void +os_getowner ( + char *fname, + int *uid, + int *gid +) +{ + struct stat fi; + + if (stat (vfn2osfn(fname,0), &fi) != -1) { + *uid = fi.st_uid; + *gid = fi.st_gid; + } +} |