emscripten/tests/unistd/sysconf.c

267 строки
6.0 KiB
C

#include <stdio.h>
#include <errno.h>
#include <unistd.h>
int main() {
int vals[] = {
_SC_PAGE_SIZE,
_SC_PAGESIZE,
_SC_ADVISORY_INFO,
_SC_BARRIERS,
_SC_ASYNCHRONOUS_IO,
_SC_CLOCK_SELECTION,
_SC_CPUTIME,
_SC_FSYNC,
_SC_IPV6,
_SC_MAPPED_FILES,
_SC_MEMLOCK,
_SC_MEMLOCK_RANGE,
_SC_MEMORY_PROTECTION,
_SC_MESSAGE_PASSING,
_SC_MONOTONIC_CLOCK,
_SC_PRIORITIZED_IO,
_SC_PRIORITY_SCHEDULING,
_SC_RAW_SOCKETS,
_SC_READER_WRITER_LOCKS,
_SC_REALTIME_SIGNALS,
_SC_SEMAPHORES,
_SC_SHARED_MEMORY_OBJECTS,
_SC_SPAWN,
_SC_SPIN_LOCKS,
_SC_SYNCHRONIZED_IO,
_SC_THREAD_ATTR_STACKADDR,
_SC_THREAD_ATTR_STACKSIZE,
_SC_THREAD_CPUTIME,
_SC_THREAD_PRIO_INHERIT,
_SC_THREAD_PRIO_PROTECT,
_SC_THREAD_PRIORITY_SCHEDULING,
_SC_THREAD_PROCESS_SHARED,
_SC_THREAD_SAFE_FUNCTIONS,
_SC_THREADS,
_SC_TIMEOUTS,
_SC_TIMERS,
_SC_VERSION,
_SC_2_C_BIND,
_SC_2_C_DEV,
_SC_2_CHAR_TERM,
_SC_2_LOCALEDEF,
_SC_2_SW_DEV,
_SC_2_VERSION,
_SC_MQ_OPEN_MAX,
_SC_XOPEN_STREAMS,
_SC_XBS5_LP64_OFF64,
_SC_XBS5_LPBIG_OFFBIG,
_SC_AIO_LISTIO_MAX,
_SC_AIO_MAX,
_SC_SPORADIC_SERVER,
_SC_THREAD_SPORADIC_SERVER,
_SC_TRACE,
_SC_TRACE_EVENT_FILTER,
_SC_TRACE_EVENT_NAME_MAX,
_SC_TRACE_INHERIT,
_SC_TRACE_LOG,
_SC_TRACE_NAME_MAX,
_SC_TRACE_SYS_MAX,
_SC_TRACE_USER_EVENT_MAX,
_SC_TYPED_MEMORY_OBJECTS,
_SC_V6_LP64_OFF64,
_SC_V6_LPBIG_OFFBIG,
_SC_2_FORT_DEV,
_SC_2_FORT_RUN,
_SC_2_PBS,
_SC_2_PBS_ACCOUNTING,
_SC_2_PBS_CHECKPOINT,
_SC_2_PBS_LOCATE,
_SC_2_PBS_MESSAGE,
_SC_2_PBS_TRACK,
_SC_2_UPE,
_SC_THREAD_THREADS_MAX,
_SC_SEM_NSEMS_MAX,
_SC_SYMLOOP_MAX,
_SC_TIMER_MAX,
_SC_V6_ILP32_OFF32,
_SC_V6_ILP32_OFFBIG,
_SC_JOB_CONTROL,
_SC_REGEXP,
_SC_SAVED_IDS,
_SC_SHELL,
_SC_XBS5_ILP32_OFF32,
_SC_XBS5_ILP32_OFFBIG,
_SC_XOPEN_CRYPT,
_SC_XOPEN_ENH_I18N,
_SC_XOPEN_LEGACY,
_SC_XOPEN_REALTIME,
_SC_XOPEN_REALTIME_THREADS,
_SC_XOPEN_SHM,
_SC_XOPEN_UNIX,
_SC_THREAD_KEYS_MAX,
_SC_IOV_MAX,
_SC_GETGR_R_SIZE_MAX,
_SC_GETPW_R_SIZE_MAX,
_SC_OPEN_MAX,
_SC_RTSIG_MAX,
_SC_EXPR_NEST_MAX,
_SC_TTY_NAME_MAX,
_SC_ATEXIT_MAX,
_SC_DELAYTIMER_MAX,
_SC_SEM_VALUE_MAX,
_SC_SIGQUEUE_MAX,
_SC_CHILD_MAX,
_SC_BC_SCALE_MAX,
_SC_BC_BASE_MAX,
_SC_LINE_MAX,
_SC_BC_DIM_MAX,
_SC_ARG_MAX,
_SC_NGROUPS_MAX,
_SC_MQ_PRIO_MAX,
_SC_RE_DUP_MAX,
_SC_THREAD_STACK_MIN,
_SC_BC_STRING_MAX,
_SC_XOPEN_VERSION,
_SC_LOGIN_NAME_MAX,
_SC_COLL_WEIGHTS_MAX,
_SC_CLK_TCK,
_SC_HOST_NAME_MAX,
_SC_AIO_PRIO_DELTA_MAX,
_SC_STREAM_MAX,
_SC_TZNAME_MAX,
_SC_THREAD_DESTRUCTOR_ITERATIONS
};
char* names[] = {
"_SC_PAGE_SIZE",
"_SC_PAGESIZE",
"_SC_ADVISORY_INFO",
"_SC_BARRIERS",
"_SC_ASYNCHRONOUS_IO",
"_SC_CLOCK_SELECTION",
"_SC_CPUTIME",
"_SC_FSYNC",
"_SC_IPV6",
"_SC_MAPPED_FILES",
"_SC_MEMLOCK",
"_SC_MEMLOCK_RANGE",
"_SC_MEMORY_PROTECTION",
"_SC_MESSAGE_PASSING",
"_SC_MONOTONIC_CLOCK",
"_SC_PRIORITIZED_IO",
"_SC_PRIORITY_SCHEDULING",
"_SC_RAW_SOCKETS",
"_SC_READER_WRITER_LOCKS",
"_SC_REALTIME_SIGNALS",
"_SC_SEMAPHORES",
"_SC_SHARED_MEMORY_OBJECTS",
"_SC_SPAWN",
"_SC_SPIN_LOCKS",
"_SC_SYNCHRONIZED_IO",
"_SC_THREAD_ATTR_STACKADDR",
"_SC_THREAD_ATTR_STACKSIZE",
"_SC_THREAD_CPUTIME",
"_SC_THREAD_PRIO_INHERIT",
"_SC_THREAD_PRIO_PROTECT",
"_SC_THREAD_PRIORITY_SCHEDULING",
"_SC_THREAD_PROCESS_SHARED",
"_SC_THREAD_SAFE_FUNCTIONS",
"_SC_THREADS",
"_SC_TIMEOUTS",
"_SC_TIMERS",
"_SC_VERSION",
"_SC_2_C_BIND",
"_SC_2_C_DEV",
"_SC_2_CHAR_TERM",
"_SC_2_LOCALEDEF",
"_SC_2_SW_DEV",
"_SC_2_VERSION",
"_SC_MQ_OPEN_MAX",
"_SC_XOPEN_STREAMS",
"_SC_XBS5_LP64_OFF64",
"_SC_XBS5_LPBIG_OFFBIG",
"_SC_AIO_LISTIO_MAX",
"_SC_AIO_MAX",
"_SC_SPORADIC_SERVER",
"_SC_THREAD_SPORADIC_SERVER",
"_SC_TRACE",
"_SC_TRACE_EVENT_FILTER",
"_SC_TRACE_EVENT_NAME_MAX",
"_SC_TRACE_INHERIT",
"_SC_TRACE_LOG",
"_SC_TRACE_NAME_MAX",
"_SC_TRACE_SYS_MAX",
"_SC_TRACE_USER_EVENT_MAX",
"_SC_TYPED_MEMORY_OBJECTS",
"_SC_V6_LP64_OFF64",
"_SC_V6_LPBIG_OFFBIG",
"_SC_2_FORT_DEV",
"_SC_2_FORT_RUN",
"_SC_2_PBS",
"_SC_2_PBS_ACCOUNTING",
"_SC_2_PBS_CHECKPOINT",
"_SC_2_PBS_LOCATE",
"_SC_2_PBS_MESSAGE",
"_SC_2_PBS_TRACK",
"_SC_2_UPE",
"_SC_THREAD_THREADS_MAX",
"_SC_SEM_NSEMS_MAX",
"_SC_SYMLOOP_MAX",
"_SC_TIMER_MAX",
"_SC_V6_ILP32_OFF32",
"_SC_V6_ILP32_OFFBIG",
"_SC_JOB_CONTROL",
"_SC_REGEXP",
"_SC_SAVED_IDS",
"_SC_SHELL",
"_SC_XBS5_ILP32_OFF32",
"_SC_XBS5_ILP32_OFFBIG",
"_SC_XOPEN_CRYPT",
"_SC_XOPEN_ENH_I18N",
"_SC_XOPEN_LEGACY",
"_SC_XOPEN_REALTIME",
"_SC_XOPEN_REALTIME_THREADS",
"_SC_XOPEN_SHM",
"_SC_XOPEN_UNIX",
"_SC_THREAD_KEYS_MAX",
"_SC_IOV_MAX",
"_SC_GETGR_R_SIZE_MAX",
"_SC_GETPW_R_SIZE_MAX",
"_SC_OPEN_MAX",
"_SC_RTSIG_MAX",
"_SC_EXPR_NEST_MAX",
"_SC_TTY_NAME_MAX",
"_SC_ATEXIT_MAX",
"_SC_DELAYTIMER_MAX",
"_SC_SEM_VALUE_MAX",
"_SC_SIGQUEUE_MAX",
"_SC_CHILD_MAX",
"_SC_BC_SCALE_MAX",
"_SC_BC_BASE_MAX",
"_SC_LINE_MAX",
"_SC_BC_DIM_MAX",
"_SC_ARG_MAX",
"_SC_NGROUPS_MAX",
"_SC_MQ_PRIO_MAX",
"_SC_RE_DUP_MAX",
"_SC_THREAD_STACK_MIN",
"_SC_BC_STRING_MAX",
"_SC_XOPEN_VERSION",
"_SC_LOGIN_NAME_MAX",
"_SC_COLL_WEIGHTS_MAX",
"_SC_CLK_TCK",
"_SC_HOST_NAME_MAX",
"_SC_AIO_PRIO_DELTA_MAX",
"_SC_STREAM_MAX",
"_SC_TZNAME_MAX",
"_SC_THREAD_DESTRUCTOR_ITERATIONS"
};
char buffer[256];
for (int i = 0; i < sizeof vals / sizeof vals[0]; i++) {
printf("%s: %ld\n", names[i], sysconf(vals[i]));
printf("errno: %d\n\n", errno);
errno = 0;
}
printf("(invalid): %ld\n", sysconf(-123));
printf("errno: %d\n", errno);
return 0;
}