PageRenderTime 56ms CodeModel.GetById 30ms RepoModel.GetById 1ms app.codeStats 0ms

/tests/unistd/sysconf.c

https://github.com/kripken/emscripten
C | 274 lines | 263 code | 5 blank | 6 comment | 2 complexity | 1eda80930c3f1f475b411153d0f25c35 MD5 | raw file
  1. /*
  2. * Copyright 2011 The Emscripten Authors. All rights reserved.
  3. * Emscripten is available under two separate licenses, the MIT license and the
  4. * University of Illinois/NCSA Open Source License. Both these licenses can be
  5. * found in the LICENSE file.
  6. */
  7. #include <assert.h>
  8. #include <stdio.h>
  9. #include <errno.h>
  10. #include <unistd.h>
  11. #include <string.h>
  12. int main() {
  13. int vals[] = {
  14. _SC_PAGE_SIZE,
  15. _SC_PAGESIZE,
  16. _SC_ADVISORY_INFO,
  17. _SC_BARRIERS,
  18. _SC_ASYNCHRONOUS_IO,
  19. _SC_CLOCK_SELECTION,
  20. _SC_CPUTIME,
  21. _SC_FSYNC,
  22. _SC_IPV6,
  23. _SC_MAPPED_FILES,
  24. _SC_MEMLOCK,
  25. _SC_MEMLOCK_RANGE,
  26. _SC_MEMORY_PROTECTION,
  27. _SC_MESSAGE_PASSING,
  28. _SC_MONOTONIC_CLOCK,
  29. _SC_PRIORITIZED_IO,
  30. _SC_PRIORITY_SCHEDULING,
  31. _SC_RAW_SOCKETS,
  32. _SC_READER_WRITER_LOCKS,
  33. _SC_REALTIME_SIGNALS,
  34. _SC_SEMAPHORES,
  35. _SC_SHARED_MEMORY_OBJECTS,
  36. _SC_SPAWN,
  37. _SC_SPIN_LOCKS,
  38. _SC_SYNCHRONIZED_IO,
  39. _SC_THREAD_ATTR_STACKADDR,
  40. _SC_THREAD_ATTR_STACKSIZE,
  41. _SC_THREAD_CPUTIME,
  42. _SC_THREAD_PRIO_INHERIT,
  43. _SC_THREAD_PRIO_PROTECT,
  44. _SC_THREAD_PRIORITY_SCHEDULING,
  45. _SC_THREAD_PROCESS_SHARED,
  46. _SC_THREAD_SAFE_FUNCTIONS,
  47. _SC_THREADS,
  48. _SC_TIMEOUTS,
  49. _SC_TIMERS,
  50. _SC_VERSION,
  51. _SC_2_C_BIND,
  52. _SC_2_C_DEV,
  53. _SC_2_CHAR_TERM,
  54. _SC_2_LOCALEDEF,
  55. _SC_2_SW_DEV,
  56. _SC_2_VERSION,
  57. _SC_MQ_OPEN_MAX,
  58. _SC_XOPEN_STREAMS,
  59. _SC_XBS5_LP64_OFF64,
  60. _SC_XBS5_LPBIG_OFFBIG,
  61. _SC_AIO_LISTIO_MAX,
  62. _SC_AIO_MAX,
  63. _SC_SPORADIC_SERVER,
  64. _SC_THREAD_SPORADIC_SERVER,
  65. _SC_TRACE,
  66. _SC_TRACE_EVENT_FILTER,
  67. _SC_TRACE_EVENT_NAME_MAX,
  68. _SC_TRACE_INHERIT,
  69. _SC_TRACE_LOG,
  70. _SC_TRACE_NAME_MAX,
  71. _SC_TRACE_SYS_MAX,
  72. _SC_TRACE_USER_EVENT_MAX,
  73. _SC_TYPED_MEMORY_OBJECTS,
  74. _SC_V6_LP64_OFF64,
  75. _SC_V6_LPBIG_OFFBIG,
  76. _SC_2_FORT_DEV,
  77. _SC_2_FORT_RUN,
  78. _SC_2_PBS,
  79. _SC_2_PBS_ACCOUNTING,
  80. _SC_2_PBS_CHECKPOINT,
  81. _SC_2_PBS_LOCATE,
  82. _SC_2_PBS_MESSAGE,
  83. _SC_2_PBS_TRACK,
  84. _SC_2_UPE,
  85. _SC_THREAD_THREADS_MAX,
  86. _SC_SEM_NSEMS_MAX,
  87. _SC_SYMLOOP_MAX,
  88. _SC_TIMER_MAX,
  89. _SC_V6_ILP32_OFF32,
  90. _SC_V6_ILP32_OFFBIG,
  91. _SC_JOB_CONTROL,
  92. _SC_REGEXP,
  93. _SC_SAVED_IDS,
  94. _SC_SHELL,
  95. _SC_XBS5_ILP32_OFF32,
  96. _SC_XBS5_ILP32_OFFBIG,
  97. _SC_XOPEN_CRYPT,
  98. _SC_XOPEN_ENH_I18N,
  99. _SC_XOPEN_LEGACY,
  100. _SC_XOPEN_REALTIME,
  101. _SC_XOPEN_REALTIME_THREADS,
  102. _SC_XOPEN_SHM,
  103. _SC_XOPEN_UNIX,
  104. _SC_THREAD_KEYS_MAX,
  105. _SC_IOV_MAX,
  106. _SC_GETGR_R_SIZE_MAX,
  107. _SC_GETPW_R_SIZE_MAX,
  108. _SC_OPEN_MAX,
  109. _SC_RTSIG_MAX,
  110. _SC_EXPR_NEST_MAX,
  111. _SC_TTY_NAME_MAX,
  112. _SC_ATEXIT_MAX,
  113. _SC_DELAYTIMER_MAX,
  114. _SC_SEM_VALUE_MAX,
  115. _SC_SIGQUEUE_MAX,
  116. _SC_CHILD_MAX,
  117. _SC_BC_SCALE_MAX,
  118. _SC_BC_BASE_MAX,
  119. _SC_LINE_MAX,
  120. _SC_BC_DIM_MAX,
  121. _SC_ARG_MAX,
  122. _SC_NGROUPS_MAX,
  123. _SC_MQ_PRIO_MAX,
  124. _SC_RE_DUP_MAX,
  125. _SC_THREAD_STACK_MIN,
  126. _SC_BC_STRING_MAX,
  127. _SC_XOPEN_VERSION,
  128. _SC_LOGIN_NAME_MAX,
  129. _SC_COLL_WEIGHTS_MAX,
  130. _SC_CLK_TCK,
  131. _SC_HOST_NAME_MAX,
  132. _SC_AIO_PRIO_DELTA_MAX,
  133. _SC_STREAM_MAX,
  134. _SC_TZNAME_MAX,
  135. _SC_THREAD_DESTRUCTOR_ITERATIONS
  136. };
  137. char* names[] = {
  138. "_SC_PAGE_SIZE",
  139. "_SC_PAGESIZE",
  140. "_SC_ADVISORY_INFO",
  141. "_SC_BARRIERS",
  142. "_SC_ASYNCHRONOUS_IO",
  143. "_SC_CLOCK_SELECTION",
  144. "_SC_CPUTIME",
  145. "_SC_FSYNC",
  146. "_SC_IPV6",
  147. "_SC_MAPPED_FILES",
  148. "_SC_MEMLOCK",
  149. "_SC_MEMLOCK_RANGE",
  150. "_SC_MEMORY_PROTECTION",
  151. "_SC_MESSAGE_PASSING",
  152. "_SC_MONOTONIC_CLOCK",
  153. "_SC_PRIORITIZED_IO",
  154. "_SC_PRIORITY_SCHEDULING",
  155. "_SC_RAW_SOCKETS",
  156. "_SC_READER_WRITER_LOCKS",
  157. "_SC_REALTIME_SIGNALS",
  158. "_SC_SEMAPHORES",
  159. "_SC_SHARED_MEMORY_OBJECTS",
  160. "_SC_SPAWN",
  161. "_SC_SPIN_LOCKS",
  162. "_SC_SYNCHRONIZED_IO",
  163. "_SC_THREAD_ATTR_STACKADDR",
  164. "_SC_THREAD_ATTR_STACKSIZE",
  165. "_SC_THREAD_CPUTIME",
  166. "_SC_THREAD_PRIO_INHERIT",
  167. "_SC_THREAD_PRIO_PROTECT",
  168. "_SC_THREAD_PRIORITY_SCHEDULING",
  169. "_SC_THREAD_PROCESS_SHARED",
  170. "_SC_THREAD_SAFE_FUNCTIONS",
  171. "_SC_THREADS",
  172. "_SC_TIMEOUTS",
  173. "_SC_TIMERS",
  174. "_SC_VERSION",
  175. "_SC_2_C_BIND",
  176. "_SC_2_C_DEV",
  177. "_SC_2_CHAR_TERM",
  178. "_SC_2_LOCALEDEF",
  179. "_SC_2_SW_DEV",
  180. "_SC_2_VERSION",
  181. "_SC_MQ_OPEN_MAX",
  182. "_SC_XOPEN_STREAMS",
  183. "_SC_XBS5_LP64_OFF64",
  184. "_SC_XBS5_LPBIG_OFFBIG",
  185. "_SC_AIO_LISTIO_MAX",
  186. "_SC_AIO_MAX",
  187. "_SC_SPORADIC_SERVER",
  188. "_SC_THREAD_SPORADIC_SERVER",
  189. "_SC_TRACE",
  190. "_SC_TRACE_EVENT_FILTER",
  191. "_SC_TRACE_EVENT_NAME_MAX",
  192. "_SC_TRACE_INHERIT",
  193. "_SC_TRACE_LOG",
  194. "_SC_TRACE_NAME_MAX",
  195. "_SC_TRACE_SYS_MAX",
  196. "_SC_TRACE_USER_EVENT_MAX",
  197. "_SC_TYPED_MEMORY_OBJECTS",
  198. "_SC_V6_LP64_OFF64",
  199. "_SC_V6_LPBIG_OFFBIG",
  200. "_SC_2_FORT_DEV",
  201. "_SC_2_FORT_RUN",
  202. "_SC_2_PBS",
  203. "_SC_2_PBS_ACCOUNTING",
  204. "_SC_2_PBS_CHECKPOINT",
  205. "_SC_2_PBS_LOCATE",
  206. "_SC_2_PBS_MESSAGE",
  207. "_SC_2_PBS_TRACK",
  208. "_SC_2_UPE",
  209. "_SC_THREAD_THREADS_MAX",
  210. "_SC_SEM_NSEMS_MAX",
  211. "_SC_SYMLOOP_MAX",
  212. "_SC_TIMER_MAX",
  213. "_SC_V6_ILP32_OFF32",
  214. "_SC_V6_ILP32_OFFBIG",
  215. "_SC_JOB_CONTROL",
  216. "_SC_REGEXP",
  217. "_SC_SAVED_IDS",
  218. "_SC_SHELL",
  219. "_SC_XBS5_ILP32_OFF32",
  220. "_SC_XBS5_ILP32_OFFBIG",
  221. "_SC_XOPEN_CRYPT",
  222. "_SC_XOPEN_ENH_I18N",
  223. "_SC_XOPEN_LEGACY",
  224. "_SC_XOPEN_REALTIME",
  225. "_SC_XOPEN_REALTIME_THREADS",
  226. "_SC_XOPEN_SHM",
  227. "_SC_XOPEN_UNIX",
  228. "_SC_THREAD_KEYS_MAX",
  229. "_SC_IOV_MAX",
  230. "_SC_GETGR_R_SIZE_MAX",
  231. "_SC_GETPW_R_SIZE_MAX",
  232. "_SC_OPEN_MAX",
  233. "_SC_RTSIG_MAX",
  234. "_SC_EXPR_NEST_MAX",
  235. "_SC_TTY_NAME_MAX",
  236. "_SC_ATEXIT_MAX",
  237. "_SC_DELAYTIMER_MAX",
  238. "_SC_SEM_VALUE_MAX",
  239. "_SC_SIGQUEUE_MAX",
  240. "_SC_CHILD_MAX",
  241. "_SC_BC_SCALE_MAX",
  242. "_SC_BC_BASE_MAX",
  243. "_SC_LINE_MAX",
  244. "_SC_BC_DIM_MAX",
  245. "_SC_ARG_MAX",
  246. "_SC_NGROUPS_MAX",
  247. "_SC_MQ_PRIO_MAX",
  248. "_SC_RE_DUP_MAX",
  249. "_SC_THREAD_STACK_MIN",
  250. "_SC_BC_STRING_MAX",
  251. "_SC_XOPEN_VERSION",
  252. "_SC_LOGIN_NAME_MAX",
  253. "_SC_COLL_WEIGHTS_MAX",
  254. "_SC_CLK_TCK",
  255. "_SC_HOST_NAME_MAX",
  256. "_SC_AIO_PRIO_DELTA_MAX",
  257. "_SC_STREAM_MAX",
  258. "_SC_TZNAME_MAX",
  259. "_SC_THREAD_DESTRUCTOR_ITERATIONS"
  260. };
  261. char buffer[256];
  262. for (int i = 0; i < sizeof vals / sizeof vals[0]; i++) {
  263. printf("%s: %ld\n", names[i], sysconf(vals[i]));
  264. assert(errno == 0);
  265. }
  266. printf("(invalid): %ld\n", sysconf(-123));
  267. printf("errno: %s\n", strerror(errno));
  268. return 0;
  269. }