00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "ux.hpp"
00019
00020 using namespace Ux;
00021
00022
00023
00024
00025 size_t System::confstr(int name, char *buf, size_t len, long default_val)
00026 {
00027 size_t r;
00028
00029 errno = 0;
00030 r = ::confstr(name, buf, len);
00031 if (r == 0) {
00032 if (errno != 0)
00033 throw Error(errno);
00034 else
00035 r = default_val;
00036 }
00037 return r;
00038 }
00039
00040
00041
00042
00043 void System::gethostname(char *name, size_t namelen)
00044 {
00045 if (::gethostname(name, namelen) == -1)
00046 throw Error(errno);
00047 }
00048
00049
00050
00051
00052 long System::sysconf(int name, long default_val)
00053 {
00054 long r;
00055
00056 errno = 0;
00057 r = ::sysconf(name);
00058 if (r == -1) {
00059 if (errno != 0)
00060 throw Error(errno);
00061 else
00062 r = default_val;
00063 }
00064 return r;
00065 }
00066
00067
00068
00069
00070 void System::uname(struct utsname *name)
00071 {
00072 if (::uname(name) == -1)
00073 throw Error(errno);
00074 }
00075
00076
00077
00078
00079 struct group *System::getgrgid(gid_t gid)
00080 {
00081 struct group *p;
00082
00083 if ((p = ::getgrgid(gid)) == NULL)
00084 throw Error(errno);
00085 return p;
00086 }
00087
00088
00089
00090
00091 char *System::getlogin(void)
00092 {
00093 char *p;
00094
00095 if ((p = ::getlogin()) == NULL)
00096 throw Error(errno);
00097 return p;
00098 }
00099
00100
00101
00102
00103 struct passwd *System::getpwuid(uid_t uid)
00104 {
00105 struct passwd *p;
00106
00107 if ((p = ::getpwuid(uid)) == NULL)
00108 throw Error(errno);
00109 return p;
00110 }