comparison druntime/import/core/sys/posix/pwd.d @ 1458:e0b2d67cfe7c

Added druntime (this should be removed once it works).
author Robert Clipsham <robert@octarineparrot.com>
date Tue, 02 Jun 2009 17:43:06 +0100
parents
children
comparison
equal deleted inserted replaced
1456:7b218ec1044f 1458:e0b2d67cfe7c
1 /**
2 * D header file for POSIX.
3 *
4 * Copyright: Copyright Sean Kelly 2005 - 2009.
5 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>.
6 * Authors: Sean Kelly
7 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8 *
9 * Copyright Sean Kelly 2005 - 2009.
10 * Distributed under the Boost Software License, Version 1.0.
11 * (See accompanying file LICENSE_1_0.txt or copy at
12 * http://www.boost.org/LICENSE_1_0.txt)
13 */
14 module core.sys.posix.pwd;
15
16 private import core.sys.posix.config;
17 public import core.sys.posix.sys.types; // for gid_t, uid_t
18
19 extern (C):
20
21 //
22 // Required
23 //
24 /*
25 struct passwd
26 {
27 char* pw_name;
28 uid_t pw_uid;
29 gid_t pw_gid;
30 char* pw_dir;
31 char* pw_shell;
32 }
33
34 passwd* getpwnam(in char*);
35 passwd* getpwuid(uid_t);
36 */
37
38 version( linux )
39 {
40 struct passwd
41 {
42 char* pw_name;
43 char* pw_passwd;
44 uid_t pw_uid;
45 gid_t pw_gid;
46 char* pw_gecos;
47 char* pw_dir;
48 char* pw_shell;
49 }
50 }
51 else version( OSX )
52 {
53 struct passwd
54 {
55 char* pw_name;
56 char* pw_passwd;
57 uid_t pw_uid;
58 gid_t pw_gid;
59 time_t pw_change;
60 char* pw_class;
61 char* pw_gecos;
62 char* pw_dir;
63 char* pw_shell;
64 time_t pw_expire;
65 }
66 }
67 else version( freebsd )
68 {
69 struct passwd
70 {
71 char* pw_name; /* user name */
72 char* pw_passwd; /* encrypted password */
73 uid_t pw_uid; /* user uid */
74 gid_t pw_gid; /* user gid */
75 time_t pw_change; /* password change time */
76 char* pw_class; /* user access class */
77 char* pw_gecos; /* Honeywell login info */
78 char* pw_dir; /* home directory */
79 char* pw_shell; /* default shell */
80 time_t pw_expire; /* account expiration */
81 int pw_fields; /* internal: fields filled in */
82 }
83 }
84
85 passwd* getpwnam(in char*);
86 passwd* getpwuid(uid_t);
87
88 //
89 // Thread-Safe Functions (TSF)
90 //
91 /*
92 int getpwnam_r(in char*, passwd*, char*, size_t, passwd**);
93 int getpwuid_r(uid_t, passwd*, char*, size_t, passwd**);
94 */
95
96 version( linux )
97 {
98 int getpwnam_r(in char*, passwd*, char*, size_t, passwd**);
99 int getpwuid_r(uid_t, passwd*, char*, size_t, passwd**);
100 }
101 else version( OSX )
102 {
103 int getpwnam_r(in char*, passwd*, char*, size_t, passwd**);
104 int getpwuid_r(uid_t, passwd*, char*, size_t, passwd**);
105 }
106 else version( freebsd )
107 {
108 int getpwnam_r(in char*, passwd*, char*, size_t, passwd**);
109 int getpwuid_r(uid_t, passwd*, char*, size_t, passwd**);
110 }
111 //
112 // XOpen (XSI)
113 //
114 /*
115 void endpwent();
116 passwd* getpwent();
117 void setpwent();
118 */
119
120 version( linux )
121 {
122 void endpwent();
123 passwd* getpwent();
124 void setpwent();
125 }
126 else version ( OSX )
127 {
128 void endpwent();
129 passwd* getpwent();
130 void setpwent();
131 }
132 else version ( freebsd )
133 {
134 void endpwent();
135 passwd* getpwent();
136 void setpwent();
137 }