int main(int argc, char **argv) { printf("SEM_NSEMS_MAX = %ld, SEM_VALUE_MAX = %ld\n", Sysconf(_SC_SEM_NSEMS_MAX), Sysconf(_SC_SEM_VALUE_MAX)); exit(0); }
int main(int argc, char **argv) { int fd, i; char *ptr; size_t filesize, mmapsize, pagesize; if (argc != 4) err_quit("usage: test1 <pathname> <filesize> <mmapsize>"); filesize = atoi(argv[2]); mmapsize = atoi(argv[3]); /* 4open file: create or truncate; set file size */ fd = Open(argv[1], O_RDWR | O_CREAT | O_TRUNC, FILE_MODE); Lseek(fd, filesize-1, SEEK_SET); Write(fd, "", 1); ptr = Mmap(NULL, mmapsize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); Close(fd); pagesize = Sysconf(_SC_PAGESIZE); printf("PAGESIZE = %ld\n", (long) pagesize); for (i = 0; i < max(filesize, mmapsize); i += pagesize) { printf("ptr[%d] = %d\n", i, ptr[i]); ptr[i] = 1; printf("ptr[%d] = %d\n", i + pagesize - 1, ptr[i + pagesize - 1]); ptr[i + pagesize - 1] = 1; } printf("ptr[%d] = %d\n", i, ptr[i]); exit(0); }
long __sysconf (int var) { long r; if ((r = Sysconf(var)) != -ENOSYS) { if (r < 0) return -1; else return r; } switch(var) { case _SC_LAST: return 4; case _SC_MEMR_MAX: return UNLIMITED; /* not true for TOS < 1.4 :-( */ case _SC_ARG_MAX: return 127; /* ignore this, cuz we can pass via the env */ case _SC_OPEN_MAX: return 45; /* think I read this somewhere */ case _SC_NGROUPS_MAX: return NGROUPS_MAX; case _SC_CHILD_MAX: return UNLIMITED; /* good 'ol TOS :-) */ default: return -1; } }
// FIXME should take a list of supplementary groups to use with setgroups(2) int drop_privs(const char *username,const char *groupname){ long buflen; if((buflen = Sysconf(_SC_GETPW_R_SIZE_MAX)) < 0){ nag("Couldn't look up getpwnam_r buffer len\n"); // FIXME this won't allow an overwrite, but it might allow // a truncation. we ought size based off failed return value buflen = BUFSIZ; } return drop_privs_r(username,groupname,buflen); }
int main(int argc, char *argv[]) { printf("MQ_OPEN_MAX = %ld, MQ_PRIO_MAX = %ld\n", Sysconf(o_SC_MQ_OPEN_MAX), Sysconf(_SC_MQ_PRIO_MAX)); return 0; }
static long parse_cpuinfo(void){ return num_cpus = Sysconf(_SC_NPROCESSORS_ONLN); }