The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

## E. Subprofiling Considerations (Informative)

This section contains further information to satisfy the requirement that the project scope enable subprofiling of POSIX.1-2008. The approach taken is to include a general requirement in normative text regarding subprofiling and to include an informative section (here) containing a proposed set of subprofiling options.

### E.1 Subprofiling Option Groups

The following Option Groups1 are defined to support profiling. Systems claiming support to POSIX.1-2008 need not implement these options apart from the requirements stated in XBD POSIX Conformance. These Option Groups allow profiles to subset the System Interfaces volume of POSIX.1-2008 by collecting sets of related functions.

POSIX_ASYNCHRONOUS_IO: Asynchronous Input and Output Functions
  aio_cancel(), aio_error(), aio_fsync(), aio_read(), aio_return(), aio_suspend(), aio_write(), lio_listio()
POSIX_BARRIERS: Barriers
  pthread_barrier_destroy(), pthread_barrier_init(), pthread_barrier_wait(), pthread_barrierattr()
POSIX_C_LANG_JUMP: Jump Functions
  longjmp(), setjmp()
POSIX_C_LANG_MATH: Maths Library
  acos(), acosf(), acosh(), acoshf(), acoshl(), acosl(), asin(), asinf(), asinh(), asinhf(), asinhl(), asinl(), atan(), atan2(), atan2f(), atan2l(), atanf(), atanh(), atanhf(), atanhl(), atanl(), cabs(), cabsf(), cabsl(), cacos(), cacosf(), cacosh(), cacoshf(), cacoshl(), cacosl(), carg(), cargf(), cargl(), casin(), casinf(), casinh(), casinhf(), casinhl(), casinl(), catan(), catanf(), catanh(), catanhf(), catanhl(), catanl(), cbrt(), cbrtf(), cbrtl(), ccos(), ccosf(), ccosh(), ccoshf(), ccoshl(), ccosl(), ceil(), ceilf(), ceill(), cexp(), cexpf(), cexpl(), cimag(), cimagf(), cimagl(), clog(), clogf(), clogl(), conj(), conjf(), conjl(), copysign(), copysignf(), copysignl(), cos(), cosf(), cosh(), coshf(), coshl(), cosl(), cpow(), cpowf(), cpowl(), cproj(), cprojf(), cprojl(), creal(), crealf(), creall(), csin(), csinf(), csinh(), csinhf(), csinhl(), csinl(), csqrt(), csqrtf(), csqrtl(), ctan(), ctanf(), ctanh(), ctanhf(), ctanhl(), ctanl(), erf(), erfc(), erfcf(), erfcl(), erff(), erfl(), exp(), exp2(), exp2f(), exp2l(), expf(), expl(), expm1(), expm1f(), expm1l(), fabs(), fabsf(), fabsl(), fdim(), fdimf(), fdiml(), floor(), floorf(), floorl(), fma(), fmaf(), fmal(), fmax(), fmaxf(), fmaxl(), fmin(), fminf(), fminl(), fmod(), fmodf(), fmodl(), fpclassify(), frexp(), frexpf(), frexpl(), hypot(), hypotf(), hypotl(), ilogb(), ilogbf(), ilogbl(), isfinite(), isgreater(), isgreaterequal(), isinf(), isless(), islessequal(), islessgreater(), isnan(), isnormal(), isunordered(), ldexp(), ldexpf(), ldexpl(), lgamma(), lgammaf(), lgammal(), llrint(), llrintf(), llrintl(), llround(), llroundf(), llroundl(), log(), log10(), log10f(), log10l(), log1p(), log1pf(), log1pl(), log2(), log2f(), log2l(), logb(), logbf(), logbl(), logf(), logl(), lrint(), lrintf(), lrintl(), lround(), lroundf(), lroundl(), modf(), modff(), modfl(), nan(), nanf(), nanl(), nearbyint(), nearbyintf(), nearbyintl(), nextafter(), nextafterf(), nextafterl(), nexttoward(), nexttowardf(), nexttowardl(), pow(), powf(), powl(), remainder(), remainderf(), remainderl(), remquo(), remquof(), remquol(), rint(), rintf(), rintl(), round(), roundf(), roundl(), scalbln(), scalblnf(), scalblnl(), scalbn(), scalbnf(), scalbnl(), signbit(), sin(), sinf(), sinh(), sinhf(), sinhl(), sinl(), sqrt(), sqrtf(), sqrtl(), tan(), tanf(), tanh(), tanhf(), tanhl(), tanl(), tgamma(), tgammaf(), tgammal(), trunc(), truncf(), truncl()
POSIX_C_LANG_SUPPORT: General ISO C Library
  abs(), asctime(), atof(), atoi(), atol(), atoll(), bsearch(), calloc(), ctime(), difftime(), div(), feclearexcept(), fegetenv(), fegetexceptflag(), fegetround(), feholdexcept(), feraiseexcept(), fesetenv(), fesetexceptflag(), fesetround(), fetestexcept(), feupdateenv(), free(), gmtime(), imaxabs(), imaxdiv(), isalnum(), isalpha(), isblank(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(), labs(), ldiv(), llabs(), lldiv(), localeconv(), localtime(), malloc(), memchr(), memcmp(), memcpy(), memmove(), memset(), mktime(), qsort(), rand(), realloc(), setlocale(), snprintf(), sprintf(), srand(), sscanf(), strcat(), strchr(), strcmp(), strcoll(), strcpy(), strcspn(), strerror(), strftime(), strlen(), strncat(), strncmp(), strncpy(), strpbrk(), strrchr(), strspn(), strstr(), strtod(), strtof(), strtoimax(), strtok(), strtol(), strtold(), strtoll(), strtoul(), strtoull(), strtoumax(), strxfrm(), time(), tolower(), toupper(), tzname, tzset(), va_arg(), va_copy(), va_end(), va_start(), vsnprintf(), vsprintf(), vsscanf()
POSIX_C_LANG_SUPPORT_R: Thread-Safe General ISO C Library
  asctime_r(), ctime_r(), gmtime_r(), localtime_r(), rand_r(), strerror_r(), strtok_r()
POSIX_C_LANG_WIDE_CHAR: Wide-Character ISO C Library
  btowc(), iswalnum(), iswalpha(), iswblank(), iswcntrl(), iswctype(), iswdigit(), iswgraph(), iswlower(), iswprint(), iswpunct(), iswspace(), iswupper(), iswxdigit(), mblen(), mbrlen(), mbrtowc(), mbsinit(), mbsrtowcs(), mbstowcs(), mbtowc(), swprintf(), swscanf(), towctrans(), towlower(), towupper(), vswprintf(), vswscanf(), wcrtomb(), wcscat(), wcschr(), wcscmp(), wcscoll(), wcscpy(), wcscspn(), wcsftime(), wcslen(), wcsncat(), wcsncmp(), wcsncpy(), wcspbrk(), wcsrchr(), wcsrtombs(), wcsspn(), wcsstr(), wcstod(), wcstof(), wcstoimax(), wcstok(), wcstol(), wcstold(), wcstoll(), wcstombs(), wcstoul(), wcstoull(), wcstoumax(), wcsxfrm(), wctob(), wctomb(), wctrans(), wctype(), wmemchr(), wmemcmp(), wmemcpy(), wmemmove(), wmemset()
POSIX_C_LANG_WIDE_CHAR_EXT: Extended Wide-Character ISO C Library
  mbsnrtowcs(), wcpcpy(), wcpncpy(), wcscasecmp(), wcsdup(), wcsncasecmp(), wcsnlen(), wcsnrtombs()
POSIX_C_LIB_EXT: General C Library Extension
  fnmatch(), getopt(), getsubopt(), optarg, opterr, optind, optopt, stpcpy(), stpncpy(), strcasecmp(), strdup(), strfmon(), strncasecmp(), strndup(), strnlen()
POSIX_CLOCK_SELECTION: Clock Selection
  clock_nanosleep(), pthread_condattr_getclock(), pthread_condattr_setclock()
POSIX_DEVICE_IO: Device Input and Output
  FD_CLR(), FD_ISSET(), FD_SET(), FD_ZERO(), clearerr(), close(), fclose(), fdopen(), feof(), ferror(), fflush(), fgetc(), fgets(), fileno(), fopen(), fprintf(), fputc(), fputs(), fread(), freopen(), fscanf(), fwrite(), getc(), getchar(), gets(), open(), perror(), poll(), printf(), pread(), pselect(), putc(), putchar(), puts(), pwrite(), read(), scanf(), select(), setbuf(), setvbuf(), stderr, stdin, stdout, ungetc(), vfprintf(), vfscanf(), vprintf(), vscanf(), write()
POSIX_DEVICE_IO_EXT: Extended Device Input and Output
  dprintf(), fmemopen(), open_memstream(), vdprintf()
POSIX_DEVICE_SPECIFIC: General Terminal
  cfgetispeed(), cfgetospeed(), cfsetispeed(), cfsetospeed(), ctermid(), isatty(), tcdrain(), tcflow(), tcflush(), tcgetattr(), tcsendbreak(), tcsetattr(), ttyname()
POSIX_DEVICE_SPECIFIC_R: Thread-Safe General Terminal
  ttyname_r()
POSIX_DYNAMIC_LINKING: Dynamic Linking
  dlclose(), dlerror(), dlopen(), dlsym()
POSIX_FD_MGMT: File Descriptor Management
  dup(), dup2(), fcntl(), fgetpos(), fseek(), fseeko(), fsetpos(), ftell(), ftello(), ftruncate(), lseek(), rewind()
POSIX_FIFO: FIFO
  mkfifo()
POSIX_FIFO_FD: FIFO File Descriptor Routines
  mkfifoat(), mknodat()
POSIX_FILE_ATTRIBUTES: File Attributes
  chmod(), chown(), fchmod(), fchown(), umask()
POSIX_FILE_ATTRIBUTES_FD: File Attributes File Descriptor Routines
  fchmodat(), fchownat()
POSIX_FILE_LOCKING: Thread-Safe Stdio Locking
  flockfile(), ftrylockfile(), funlockfile(), getc_unlocked(), getchar_unlocked(), putc_unlocked(), putchar_unlocked()
POSIX_FILE_SYSTEM: File System
  access(), chdir(), closedir(), creat(), fchdir(), fpathconf(), fstat(), fstatvfs(), getcwd(), link(), mkdir(), mkstemp(), opendir(), pathconf(), readdir(), remove(), rename(), rewinddir(), rmdir(), stat(), statvfs(), tmpfile(), tmpnam(), truncate(), unlink(), utime()
POSIX_FILE_SYSTEM_EXT: File System Extensions
  alphasort(), dirfd(), getdelim(), getline(), mkdtemp(), scandir()
POSIX_FILE_SYSTEM_FD: File System File Descriptor Routines
  faccessat(), fdopendir(), fstatat(), linkat(), mkdirat(), openat(), renameat(), unlinkat(), utimensat()
POSIX_FILE_SYSTEM_GLOB: File System Glob Expansion
  glob(), globfree()
POSIX_FILE_SYSTEM_R: Thread-Safe File System
  readdir_r()
POSIX_I18N: Internationalization
  catclose(), catgets(), catopen(), iconv(), iconv_close(), iconv_open(), nl_langinfo()
POSIX_JOB_CONTROL: Job Control
  setpgid(), tcgetpgrp(), tcsetpgrp(), tcgetsid()
POSIX_MAPPED_FILES: Memory Mapped Files
  mmap(), munmap()
POSIX_MEMORY_PROTECTION: Memory Protection
  mprotect()
POSIX_MULTI_CONCURRENT_LOCALES: Multiple Concurrent Locales
  duplocale(), freelocale(), isalnum_l(), isalpha_l(), isblank_l(), iscntrl_l(), isdigit_l(), isgraph_l(), islower_l(), isprint_l(), ispunct_l(), isspace_l(), isupper_l(), iswalnum_l(), iswalpha_l(), iswblank_l(), iswcntrl_l(), iswctype_l(), iswdigit_l(), iswgraph_l(), iswlower_l(), iswprint_l(), iswpunct_l(), iswspace_l(), iswupper_l(), iswxdigit_l(), isxdigit_l(), newlocale(), strcasecmp_l(), strcoll_l(), strfmon_l(), strncasecmp_l(), strxfrm_l(), tolower_l(), toupper_l(), towctrans_l(), towlower(), towupper(), uselocale(), wcscasecmp_l(), wcscoll_l(), wcsncasecmp_l(), wcsxfrm_l(), wctrans_l(), wctype_l()
POSIX_MULTI_PROCESS: Multiple Processes
  _Exit(), _exit(), assert(), atexit(), clock(), execl(), execle(), execlp(), execv(), execve(), execvp(), exit(), fork(), getpgrp(), getpgid(), getpid(), getppid(), getsid(), setsid(), sleep(), times(), wait(), waitid(), waitpid()
POSIX_MULTI_PROCESS_FD: Multiple Processes File Descriptor Routines
  fexecve()
POSIX_NETWORKING: Networking
  accept(), bind(), connect(), endhostent(), endnetent(), endprotoent(), endservent(), freeaddrinfo(), gai_strerror(), getaddrinfo(), gethostent(), gethostname(), getnameinfo(), getnetbyaddr(), getnetbyname(), getnetent(), getpeername(), getprotobyname(), getprotobynumber(), getprotoent(), getservbyname(), getservbyport(), getservent(), getsockname(), getsockopt(), htonl(), htons(), if_freenameindex(), if_indextoname(), if_nameindex(), if_nametoindex(), inet_addr(), inet_ntoa(), inet_ntop(), inet_pton(), listen(), ntohl(), ntohs(), recv(), recvfrom(), recvmsg(), send(), sendmsg(), sendto(), sethostent(), setnetent(), setprotoent(), setservent(), setsockopt(), shutdown(), socket(), sockatmark(), socketpair()
POSIX_PIPE: Pipe
  pipe()
POSIX_ROBUST_MUTEXES: Robust Mutexes
  pthread_mutex_consistent(), pthread_mutexattr_getrobust(), pthread_mutexattr_setrobust()
POSIX_REALTIME_SIGNALS: Realtime Signals
  sigqueue(), sigtimedwait(), sigwaitinfo()
POSIX_REGEXP: Regular Expressions
  regcomp(), regerror(), regexec(), regfree()
POSIX_RW_LOCKS: Reader Writer Locks
  pthread_rwlock_destroy(), pthread_rwlock_init(), pthread_rwlock_rdlock(), pthread_rwlock_timedrdlock(), pthread_rwlock_timedwrlock(), pthread_rwlock_tryrdlock(), pthread_rwlock_trywrlock(), pthread_rwlock_unlock(), pthread_rwlock_wrlock(), pthread_rwlockattr_destroy(), pthread_rwlockattr_init(), pthread_rwlockattr_getpshared(), pthread_rwlockattr_setpshared()
POSIX_SEMAPHORES: Semaphores
  sem_close(), sem_destroy(), sem_getvalue(), sem_init(), sem_open(), sem_post(), sem_timedwait(), sem_trywait(), sem_unlink(), sem_wait()
POSIX_SHELL_FUNC: Shell and Utilities
  pclose(), popen(), system(), wordexp(), wordfree()
POSIX_SIGNAL_JUMP: Signal Jump Functions
  siglongjmp(), sigsetjmp()
POSIX_SIGNALS: Signals
  abort(), alarm(), kill(), pause(), raise(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), sigismember(), signal(), sigpending(), sigprocmask(), sigsuspend(), sigwait()
POSIX_SIGNALS_EXT: Extended Signals
  psignal(), psiginfo(), strsignal()
POSIX_SINGLE_PROCESS: Single Process
  confstr(), environ, errno, getenv(), setenv(), sysconf(), uname(), unsetenv()
POSIX_SPIN_LOCKS: Spin Locks
  pthread_spin_destroy(), pthread_spin_init(), pthread_spin_lock(), pthread_spin_trylock(), pthread_spin_unlock()
POSIX_SYMBOLIC_LINKS: Symbolic Links
  ,,()href="#tag_foot_2">2 lstat(), readlink(), symlink()
POSIX_SYMBOLIC_LINKS_FD: Symbolic Links File Descriptor Routines
  readlinkat(), symlinkat()
POSIX_SYSTEM_DATABASE: System Database
  getgrgid(), getgrnam(), getpwnam(), getpwuid()
POSIX_SYSTEM_DATABASE_R: Thread-Safe System Database
  getgrgid_r(), getgrnam_r(), getpwnam_r(), getpwuid_r()
POSIX_THREADS_BASE: Base Threads
  pthread_atfork(), pthread_attr_destroy(), pthread_attr_getdetachstate(), pthread_attr_getschedparam(), pthread_attr_init(), pthread_attr_setdetachstate(), pthread_attr_setschedparam(), pthread_cancel(), pthread_cleanup_pop(), pthread_cleanup_push(), pthread_cond_broadcast(), pthread_cond_destroy(), pthread_cond_init(), pthread_cond_signal(), pthread_cond_timedwait(), pthread_cond_wait(), pthread_condattr_destroy(), pthread_condattr_init(), pthread_create(), pthread_detach(), pthread_equal(), pthread_exit(), pthread_getspecific(), pthread_join(), pthread_key_create(), pthread_key_delete(), pthread_kill(), pthread_mutex_destroy(), pthread_mutex_init(), pthread_mutex_lock(), pthread_mutex_timedlock(), pthread_mutex_trylock(), pthread_mutex_unlock(), pthread_mutexattr_destroy(), pthread_mutexattr_init(), pthread_once(), pthread_self(), pthread_setcancelstate(), pthread_setcanceltype(), pthread_setspecific(), pthread_sigmask(), pthread_testcancel()
POSIX_THREADS_EXT: Extended Threads
  pthread_attr_getguardsize(), pthread_attr_setguardsize(), pthread_mutexattr_gettype(), pthread_mutexattr_settype()
POSIX_TIMERS: Timers
  clock_getres(), clock_gettime(), clock_settime(), nanosleep(), timer_create(), timer_delete(), timer_getoverrun(), timer_gettime(), timer_settime()
POSIX_USER_GROUPS: User and Group
  getegid(), geteuid(), getgid(), getgroups(), getlogin(), getuid(), setegid(), seteuid(), setgid(), setuid()
POSIX_USER_GROUPS_R: Thread-Safe User and Group
  getlogin_r()
POSIX_WIDE_CHAR_DEVICE_IO: Device Input and Output
  fgetwc(), fgetws(), fputwc(), fputws(), fwide(), fwprintf(), fwscanf(), getwc(), getwchar(), putwc(), putwchar(), ungetwc(), vfwprintf(), vfwscanf(), vwprintf(), vwscanf(), wprintf(), wscanf()
XSI_C_LANG_SUPPORT: XSI General C Library
  _tolower(), _toupper(), a64l(), daylight(), drand48(), erand48(), ffs(), getdate(), hcreate(), hdestroy(), hsearch(), initstate(), insque(), isascii(), jrand48(), l64a(), lcong48(), lfind(), lrand48(), lsearch(), memccpy(), mrand48(), nrand48(), random(), remque(), seed48(), setstate(), signgam, srand48(), srandom(), strptime(), swab(), tdelete(), tfind(), timezone(), toascii(), tsearch(), twalk()
XSI_DBM: XSI Database Management
  dbm_clearerr(), dbm_close(), dbm_delete(), dbm_error(), dbm_fetch(), dbm_firstkey(), dbm_nextkey(), dbm_open(), dbm_store()
XSI_DEVICE_IO: XSI Device Input and Output
  fmtmsg(), readv(), writev()
XSI_DEVICE_SPECIFIC: XSI General Terminal
  grantpt(), posix_openpt(), ptsname(), unlockpt()
XSI_FILE_SYSTEM: XSI File System
  basename(), dirname(), ftw(), lockf(), mknod(), nftw(), realpath(), seekdir(), sync(), telldir(), tempnam()
XSI_IPC: XSI Interprocess Communication
  ftok(), msgctl(), msgget(), msgrcv(), msgsnd(), semctl(), semget(), semop(), shmat(), shmctl(), shmdt(), shmget()
XSI_JUMP: XSI Jump Functions
  _longjmp(), _setjmp()
XSI_MATH: XSI Maths Library
  j0(), j1(), jn(), y0(), y1(), yn()
XSI_MULTI_PROCESS: XSI Multiple Process
  getpriority(), getrlimit(), getrusage(), nice(), setpgrp(), setpriority(), setrlimit(), ulimit()
XSI_SIGNALS: XSI Signal
  killpg(), sigaltstack(), sighold(), sigignore(), siginterrupt(), sigpause(), sigrelse(), sigset()
XSI_SINGLE_PROCESS: XSI Single Process
  gethostid(), gettimeofday(), putenv()
XSI_SYSTEM_DATABASE: XSI System Database
  endpwent(), getpwent(), setpwent()
XSI_SYSTEM_LOGGING: XSI System Logging
  closelog(), openlog(), setlogmask(), syslog()
XSI_THREADS_EXT: XSI Threads Extensions
  pthread_attr_getstack(), pthread_attr_setstack(), pthread_getconcurrency(), pthread_setconcurrency()
XSI_TIMERS: XSI Timers
  getitimer(), setitimer()
XSI_USER_GROUPS: XSI User and Group
  endgrent(), endutxent(), getgrent(), getutxent(), getutxid(), getutxline(), pututxline(), setgrent(), setregid(), setreuid(), setutxent()
XSI_WIDE_CHAR: XSI Wide-Character Library
  wcswidth(), wcwidth()

#### Footnotes

1.
  These are modeled on the Units of Functionality from IEEE Std 1003.13-1998.
2.
  The lchown() function also depends on POSIX_FILE_ATTRIBUTES.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]