]> git.tdb.fi Git - libs/core.git/blob - source/fs/unix/stat_owner.cpp
Minimalistic port for Android
[libs/core.git] / source / fs / unix / stat_owner.cpp
1 #include <grp.h>
2 #include <pwd.h>
3 #include <msp/strings/format.h>
4 #include "stat.h"
5 #include "stat_private.h"
6
7 namespace Msp {
8 namespace FS {
9
10 void Stat::Private::fill_owner_info(Stat::OwnerInfo &result)
11 {
12         char buf[1024];
13
14         struct passwd pw;
15         struct passwd *owner;
16         if(!getpwuid_r(owner_id, &pw, buf, sizeof(buf), &owner) && owner)
17                 result.owner = owner->pw_name;
18         else
19                 result.owner = format("%d", owner_id);
20
21         struct group gr;
22         struct group *group;
23         if(!getgrgid_r(group_id, &gr, buf, sizeof(buf), &group) && group)
24                 result.group = group->gr_name;
25         else
26                 result.group = format("%d", group_id);
27 }
28
29 } // namespace FS
30 } // namespace Msp