学习笔记:IEEE 1003.13-2003(POSIX实时与嵌入式规范)

一、文档

在线参考: IEEE 1003.13-2003

免费下载Draft 版本(pdf):IEEE Std. 1003.13

二、概念

1、POSIX标准

可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称。

目前广泛使用的 POSIX 标准是 1003.1 标准,全称为IEEE Std 1003.1(缩写写法为 POSIX.1)。

2、IEEE 1003.13

IEEE 1003.13是POSIX 针对嵌入式领域制定的标准【实时规范 (reatime profiles)】,该标准是由 IEEE Std 1003.1 筛选而来,因此是其子集。

POSIX 为了提供不同层级的RTOS能力,IEEE Std. 1003.13 定义了四个子集:

  • Minimal:最小嵌入式子集规范 —— PSE51
  • Controller:工业控制器子集规范 —— PSE52
  • Dedicated:较大规模的嵌入式系统子集规范 —— PSE53
  • Multi-Purpose:具有实时性要求的大规模通用系统子集规范 —— PSE54

3、规范划分

主要根据Module 和_POSIX_开头宏来进行细化

三、Module划分

1、Module划分表

SN

Module

PSE51

PSE52

PSE53

PSE54

1

POSIX_C_LANG_JUMP

X

X

X

X

2

POSIX_C_LANG_MATH

-

X

X

X

3

POSIX_C_LANG_SUPPORT

X

X

X

X

4

POSIX_C_LANG_WIDE_CHAR

-

-

-

X

5

POSIX_DEVICE_IO

X

X

X

X

6

POSIX_DEVICE_SPECIFIC

-

-

-

X

7

POSIX_EVENT_MGMT

-

-

X

X

8

POSIX_FD_MGMT

-

X

X

X

9

POSIX_FIFO

-

-

-

X

10

POSIX_FILE_ATTRIBUTES

-

-

-

X

11

POSIX_FILE_LOCKING

X

X

X

X

12

POSIX_FILE_SYSTEM

-

X

X

X

13

POSIX_FILE_SYSTEM_EXT

-

-

-

X

14

POSIX_JOB_CONTROL

-

-

-

X

15

POSIX_MULTI_PROCESS

-

-

X

X

16

POSIX_NETWORKING

-

-

X

X

17

POSIX_PIPE

-

-

X

X

18

POSIX_PRIORITY_RANGES

X

X

X

X

19

POSIX_REGEXP

-

-

-

X

20

POSIX_SHELL_FUNC

-

-

-

X

21

POSIX_SIGNALS

X

X

X

X

22

POSIX_SIGNAL_JUMP

-

-

X

X

23

POSIX_SINGLE_PROCESS

X

X

X

X

24

POSIX_STRING_MATCHING

-

-

-

X

25

POSIX_SYMBOLIC_LINKS

-

-

-

X

26

POSIX_SYSTEM_DATABASE

-

-

-

X

27

POSIX_THREADS_BASE

X

X

X

X

28

POSIX_USER_GROUPS

-

-

-

X

29

POSIX_WIDE_CHAR_IO

-

-

-

X

30

XSI_DYNAMIC_LINKING

-

-

-

X

31

XSI_SYSTEM_LOGGING

-

-

-

X

32

XSI_THREAD_MUTEX_EXT

X

X

X

X

33

XSI_THREADS_EXT

X

X

X

X

2、Module对应的Function表

SN

Module

Profile

Function

1

POSIX_C_LANG_JUMP

PSE51

longjmp(), setjmp()

2

POSIX_C_LANG_MATH

(249)

PSE52

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()

3

POSIX_C_LANG_SUPPORT

(105)

PSE51

abs(), asctime(), asctime_r(), atof(), atoi(), atol(), atoll(), bsearch(), calloc(), ctime(), ctime_r(), difftime(), div(), feclearexcept(), fegetenv(), fegetexceptflag(), fegetround(), feholdexcept(), feraiseexcept(), fesetenv(), fesetexceptflag(), fesetround(), fetestexcept(), feupdateenv(), free(), gmtime(), gmtime_r(), imaxabs(), imaxdiv(), isalnum(), isalpha(), isblank(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(), labs(), ldiv(), llabs(), lldiv(), localeconv(), localtime(), localtime_r(), malloc(), memchr(), memcmp(), memcpy(), memmove(), memset(), mktime(), qsort(), rand(), rand_r(), realloc(), setlocale(), snprintf(), sprintf(), srand(), sscanf(), strcat(), strchr(), strcmp(), strcoll(), strcpy(), strcspn(), strerror(), strerror_r(), strftime(), strlen(), strncat(), strncmp(), strncpy(), strpbrk(), strrchr(), strspn(), strstr(), strtod(), strtof(), strtoimax(), strtok(), strtok_r(), strtol(), strtold(), strtoll(), strtoul(), strtoull(), strtoumax(), strxfrm(), time(), tolower(), toupper(), tzname, tzset(), va_arg(), va_copy(), va_end(), va_start(), vsnprintf(), vsprintf(), vsscanf()

4

POSIX_C_LANG_WIDE_CHAR

(66)

PSE54

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()

5

POSIX_DEVICE_IO

(40)

PSE51

clearerr(), close(), fclose(), fdopen(), feof (), ferror(), fflush (), fgetc(), fgets(), fileno(), fopen(), fprintf(), fputc(), fputs(), fread(), freopen(), fscanf(), fwrite(), getc(), getchar(), gets(), open(), perror(), printf(), putc(), putchar(), puts(), read(), scanf(), setbuf(), setvbuf(), stderr(), stdin(), stdout(), ungetc(), vfprintf (), vfscanf(), vprintf(), vscanf(), write()

6

POSIX_DEVICE_SPECIFIC

(14)

PSE54

cfgetispeed(), cfgetospeed(), cfsetispeed(), cfsetospeed(), ctermid(), isatty(), tcdrain(), tcflow(), tcflush(), tcgetattr(), tcsendbreak(), tcsetattr(), ttyname(), ttyname_r()

7

POSIX_EVENT_MGMT

PSE53

FD_CLR(), FD_ISSET(), FD_SET(), FD_ZERO(), pselect(), select()

8

POSIX_FD_MGMT

PSE52

dup(), dup2(), fcntl(), fgetpos(), fseek(), fseeko(), fsetpos(), ftell(), ftello(), ftruncate(), lseek(), rewind()

9

POSIX_FIFO

PSE54

mkfifo()

10

POSIX_FILE_ATTRIBUTES

PSE54

chmod(), chown(), fchmod(), fchown(), umask()

11

POSIX_FILE_LOCKING

PSE51

flockfile(), ftrylockfile(), funlockfile(), getc_unlocked(), getchar_unlocked(), putc_unlocked(), putchar_unlocked()

12

POSIX_FILE_SYSTEM

PSE52

access(), chdir(), closedir(), creat(), fpathconf(), fstat(), getcwd(), link(), mkdir(), opendir(), pathconf(), readdir(), readdir_r(), remove(), rename(), rewinddir(), rmdir(), stat(), tmpfile(), tmpnam(), unlink(), utime()

13

POSIX_FILE_SYSTEM_EXT

PSE54

glob(), globfree()

14

POSIX_JOB_CONTROL

PSE54

setpgid(), tcgetpgrp(), tcsetpgrp()

15

POSIX_MULTI_PROCESS

PSE53

_Exit(), _exit(), assert(), atexit(), clock(), execl(), execle(), execlp(), execv(), execve(), execvp(), exit(), fork(), getpgrp(), getpid(), getppid(), setsid(), sleep(), times(), wait(), waitpid()

16

POSIX_NETWORKING

PSE53

accept(), bind(), connect(), endhostent(), endnetent(), endprotoent(), endservent(), freeaddrinfo(), gai_strerror(), getaddrinfo(), gethostbyaddr(), gethostbyname(), 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()

17

POSIX_PIPE

PSE53

pipe()

18

POSIX_PRIORITY_RANGES

PSE51

sched_get_priority_max(), sched_get_priority_min(), sched_rr_get_interval()

19

POSIX_REGEXP

PSE54

regcomp(), regerror(), regexec(), regfree()

20

POSIX_SHELL_FUNC

PSE54

pclose(), popen(), system(), wordexp(), wordfree()

21

POSIX_SIGNALS

PSE51

abort(), alarm(), kill(), pause(), raise(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), sigismember(), signal(), sigpending(), sigprocmask(), sigsuspend(), sigwait()

22

POSIX_SIGNAL_JUMP

PSE53

siglongjmp(), sigsetjmp()

23

POSIX_SINGLE_PROCESS

PSE51

confstr(), getenv(), setenv(), sysconf(), uname(), unsetenv()

24

POSIX_STRING_MATCHING

PSE54

fnmatch(), getopt()

25

POSIX_SYMBOLIC_LINKS

PSE54

lstat(), readlink(), symlink()

26

POSIX_SYSTEM_DATABASE

PSE54

getgrgid(), getgrgid_r(), getgrnam(), getgrnam_r(), getpwnam(), getpwnam_r(), getpwuid(), getpwuid_r()

27

POSIX_THREADS_BASE

PSE51

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_trylock(), pthread_mutex_unlock(), pthread_mutexattr_destroy(), pthread_mutexattr_init(), pthread_once(), pthread_self(), pthread_setcalcelstate(), pthread_setcanceltype(), pthread_setspecific(), pthread_sigmask(), pthread_testcancel()

28

POSIX_USER_GROUPS

PSE54

getegid(), geteuid(), getgid(), getgroups(), getlogin(), getlogin_r(), getuid(), setegid(), seteuid, setgid(), setuid()

29

POSIX_WIDE_CHAR_IO

PSE54

fgetwc(), fgetws(), fputwc(), fputws(), fwide(), fwprintf(), fwscanf(), getwc(), getwchar(), putwc(), putwchar(), ungetwc(), vfwprintf(), vfwscanf(), vwprintf(), vwscanf(), wprintf(), wscanf()

30

XSI_DYNAMIC_LINKING

PSE54

dlclose(), dlerror(), dlopen(), dlsym()

31

XSI_SYSTEM_LOGGING

PSE54

closelog(), openlog(), setlogmask(), syslog()

32

XSI_THREAD_MUTEX_EXT

PSE51

pthread_mutexattr_gettype(), pthread_mutexattr_settype()

33

XSI_THREADS_EXT

PSE51

pthread_attr_getguardsize(), pthread_attr_getstack(), pthread_attr_setguardsize(), pthread_attr_setstack(), pthread_getconcurrency(), pthread_setconcurrency()

四、_POSIX_开头宏划分

1、_POSIX_开头宏划分表

SN

_POSIX_宏

PSE51

PSE52

PSE53

PSE54

1

_POSIX_ADVISORY_INFO

-

-

-

X

2

_POSIX_ASYNCHRONOUS_IO

-

-

X

X

3

_POSIX_CLOCK_SELECTION

X

X

X

X

4

_POSIX_CPUTIME

-

-

X

X

5

_POSIX_FSYNC

X

X

X

X

6

_POSIX_MAPPED_FILES

-

X

X

X

7

_POSIX_MEMLOCK

X

X

X

X

8

_POSIX_MEMLOCK_RANGE

X

X

X

X

9

_POSIX_MEMORY_PROTECTION

-

-

X

X

10

_POSIX_MESSAGE_PASSING

-

X

X

X

11

_POSIX_PRIORITY_SCHEDULING

-

-

X

X

12

_POSIX_REALTIME_SIGNALS

X

X

X

X

13

_POSIX_SEMAPHORES

X

X

X

X

14

_POSIX_SHARED_MEMORY_OBJECTS

X

X

X

X

15

_POSIX_SPAWN

-

-

X

X

16

_POSIX_SYNCHRONIZED_IO

X

X

X

X

17

_POSIX_THREAD_ATTR_STACKADDR

X

X

X

X

18

_POSIX_THREAD_ATTR_STACKSIZE

X

X

X

X

19

_POSIX_THREAD_CPUTIME

X

X

X

X

20

_POSIX_THREAD_PRIO_INHERIT

X

X

X

X

21

_POSIX_THREAD_PRIO_PROTECT

X

X

X

X

22

_POSIX_THREAD_PRIORITY_SCHEDULING

X

X

X

X

23

_POSIX_THREAD_PROCESS_SHARED

-

-

X

X

24

_POSIX_TIMEOUTS

X

X

X

X

25

_POSIX_TIMERS

X

X

X

X

26

_POSIX_TRACE

-

X

X

X

27

_POSIX_TRACE_EVENT_FILTER

-

X

X

X

28

_POSIX_TRACE_LOG

-

X

X

X

2、_POSIX_开头宏应的Function表

SN

_POSIX_

Profile

Function

备注

1

_POSIX_ADVISORY_INFO

PSE54

posix_fadvise(), posix_fallocate(), posix_memalign()

 

2

_POSIX_

ADVISORY_INFO

and either

_POSIX_MAPPED_FILES

or

_POSIX_SHARED_

MEMORY_OBJECTS

PSE54

posix_madvise()

_POSIX_ADVISORY_INFO(PSE54)

_POSIX_MAPPED_FILES(PSE52)

_POSIX_SHARED_MEMORY

_OBJECTS(PSE51)

3

_POSIX

_ASYNCHRONOUS_IO

PSE53

aio_cancel(),aio_error(),aio_fsync(),

aio_read(),aio_return(), aio_suspend(), aio_write(), lio_listio()

 

4

_POSIX_

CLOCK_SELECTION

PSE51

clock_nanosleep()

 

5

_POSIX_

CLOCK_SELECTION

and

_POSIX_THREADS

PSE51

pthread_condattr_getclock(), pthread_condattr_setclock()

_POSIX_THREADS同 = POSIX_THREADS_BASE(支持)

+

_POSIX_READER_WRITER_LOCKS

(不支持)

6

_POSIX_CPUTIME

PSE53

clock_getcpuclokid()

 

7

_POSIX_FSYNC

PSE51

fsync()

 

8

_POSIX_MAPPED_FILES

and _POSIX_

SYNCHRONIZED_IO

PSE52

msync()

_POSIX_MAPPED_FILES(PSE52)

_POSIX_SYNCHRONIZED_IO(PSE51)

9

_POSIX_MEMLOCK

PSE51

mlockall(), munlockall()

 

10

_POSIX_

MEMLOCK_RANGE

PSE51

mlock(), munlock()

 

11

_POSIX_MEMORY

_PROTECTION

PSE53

mprotect()

 

12

_POSIX_

MESSAGE_PASSING

PSE52

mq_close(), mq_getattr(), mq_notify(), mq_open(), mq_receive(), mq_send(), mq_setattr(), mq_unlink()

 

13

_POSIX_

MESSAGE_PASSING

and

_POSIX_TIMEOUTS

PSE52

mq_timedreceive(), mq_timedsend()

_POSIX_MESSAGE_PASSING(PSE52)

_POSIX_TIMEOUTS(PSE51)

14

_POSIX_PRIORITY

_SCHEDULING

PSE53

sched_get_priority_max(), sched_get_priority_min(), sched_getparam(),

sched_getscheduler(), sched_rr_get_interval(),

sched_setparam(),

sched_setscheduler(),

sched_yield()

_POSIX_THREAD_PRIORITY

_SCHEDULING

and

_POSIX_THREADS里面也包含(PSE51)

下面3个sched_get_priority_max(),

sched_get_priority_min(),

sched_rr_get_interval()

15

_POSIX_REALTIME

_SIGNALS

PSE51

sigqueue(), sigtimedwait(),

sigwaitinfo()

 

16

_POSIX_SEMAPHORES

PSE51

sem_close(), sem_destroy(),

sem_getvalue(), sem_init(),

sem_open(), sem_post(),

sem_trywait(),

sem_wait(), sem_unlink()

 

17

_POSIX_SEMAPHORES

and

_POSIX_TIMEOUTS

PSE51

sem_timedwait()

_POSIX_SEMAPHORES(PSE51)

_POSIX_TIMEOUTS(PSE51)

18

_POSIX_SHARED_

MEMORY_OBJECTS

PSE51

shm_open(), shm_unlink()

 

19

_POSIX_SHARED_

MEMORY_OBJECTS

or

_POSIX_MAPPED_FILES

PSE51

mmap(), munmap()

_POSIX_SHARED_MEMORY

_OBJECTS(PSE51)

_POSIX_MAPPED_FILES(PSE52)

20

_POSIX_SPAWN

PSE53

posix_spawn(),

posix_spawn_file

_actions_addclose(), posix_spawn_file

_actions_adddup2(), posix_spawn_file

_actions_addopen(), posix_spawn_file

_actions_destroy(), posix_spawn_file_actions_init(), posix_spawnattr_destroy(),

posix_spawnattr_getflags(),

posix_spawnattr_getpgroup(), posix_spawnattr_getsigdefault(), posix_spawnattr_getsigmask(),

posix_spawnattr_init(),

posix_spawnattr_setflags(),

posix_spawnattr_setpgroup(), posix_spawnattr_setsigdefault(), posix_spawnattr_setsigmask(),

posix_spawnp()

 

21

_POSIX_SPAWN

and

_POSIX_PRIORITY

_SCHEDULING

PSE53

posix_spawnattr_getschedparam(), posix_spawnattr_setschedparam(), posix_spawnattr_getschedpolicy(), posix_spawnattr_setschedpolicy()

_POSIX_PRIORITY_SCHEDULING (PSE53)

_POSIX_SPAWN(PSE53)

22

_POSIX_

SYNCHRONIZED_IO

PSE51

fdatasync()

 

23

_POSIX_THREAD_

ATTR_STACKADDR

and _POSIX_THREADS

PSE51

pthread_attr_getstackaddr(),

pthread_attr_setstackaddr()

_POSIX_THREAD_ATTR_

STACKADDR(PSE51)

24

_POSIX_THREAD_

ATTR_STACKADDR, _POSIX_THREADS

and

_POSIX_THREAD_

ATTR_STACKSIZE

PSE51

pthread_attr_getstack(),

pthread_attr_setstack()

_POSIX_THREAD_ATTR

_STACKADDR(PSE51)_POSIX_THREAD_ATTR

_STACKSIZE(PSE51)

【XSI_THREADS_EXT中也有pthread_attr_getstack(), pthread_attr_setstack()】

25

_POSIX_THREAD_

ATTR_STACKSIZE

and

_POSIX_THREADS

PSE51

pthread_attr_getstacksize(),

pthread_attr_setstacksize()

_POSIX_THREAD_ATTR_STACKSIZE(PSE51)

26

_POSIX_

THREAD_CPUTIME

and

_POSIX_THREADS

PSE51

pthread_getcpuclockid()

_POSIX_THREAD_CPUTIME(PSE51)

27

_POSIX_THREAD

_PRIO_INHERIT

and

_POSIX_THREADS

PSE51

pthread_mutexattr_getprotocol(), pthread_mutexattr_setprotocol()

_POSIX_THREAD_PRIO_INHERIT(PSE51)

【这两个函数同_POSIX_THREAD_PRIO_PROTECT

and _POSIX_THREADS】

28

_POSIX_THREAD_

PRIO_PROTECT

and

_POSIX_THREADS

PSE51

pthread_mutex_getprioceiling(), pthread_mutex_setprioceiling(), pthread_mutexattr_getprioceiling(), pthread_mutexattr_getprotocol(), pthread_mutexattr_setprioceiling(), pthread_mutexattr_setprotocol()

_POSIX_THREAD_PRIO_PROTECT(PSE51)

【_POSIX_THREAD_PRIO_INHERIT and _POSIX_THREADS里面也有pthread_mutexattr_getprotocol(), pthread_mutexattr_setprotocol()】

29

_POSIX_THREAD

_PRIORITY_SCHEDULING

and

_POSIX_THREADS

PSE51

pthread_attr_getinheritsched(), pthread_attr_getschedpolicy(),

pthread_attr_getscope(),

pthread_attr_setinheritsched(), pthread_attr_setschedpolicy(),

pthread_attr_setscope(),

pthread_getschedparam(),

pthread_setschedparam(),

pthread_setschedprio(),

sched_get_priority_max(),

sched_get_priority_min(),

sched_rr_get_interval()

_POSIX_THREAD_PRIORITY

_SCHEDULING(PSE51)

【_POSIX_PRIORITY_

SCHEDULING里面也包含(PSE53)

下面3个sched_get_priority_max(), sched_get_priority_min(), sched_rr_get_interval()】

30

_POSIX_THREAD

_PROCESS_SHARED

and

_POSIX_THREADS

PSE53

pthread_condattr_getpshared(), pthread_condattr_setpshared(), pthread_mutexattr_getpshared(), pthread_mutexattr_setpshared(), pthread_rwlockattr_getpshared(), pthread_rwlockattr_setpshared()

_POSIX_THREAD_

PROCESS_SHARED(PSE51)

_POSIX_THREADS = POSIX_THREADS_BASE(支持)+ _POSIX_READER_WRITER_LOCKS(不支持)

【pthread_rwlock*不支持】

31

_POSIX_TIMEOUTS

and

_POSIX_THREADS

PSE51

pthread_mutex_timedlock(),

pthread_rwlock_timedrdlock(), pthread_rwlock_timedwrlock()

_POSIX_TIMEOUTS(PSE51)

_POSIX_THREADS = POSIX_THREADS_BASE(支持)+ _POSIX_READER_WRITER_LOCKS(不支持)

【pthread_rwlock*不支持】

32

_POSIX_TIMEOUTS

and

_POSIX_TRACE

PSE52

posix_trace_timedgetnext_event()

_POSIX_TIMEOUTS(PSE51)

_POSIX_TRACE(PSE52)

33

_POSIX_TIMERS

PSE51

clock_getres(), clock_gettime(),

clock_settime(), nanosleep(),

timer_create(), timer_detele(),

timer_getoverrun(), timer_gettime(),

timer_settime()

 

34

_POSIX_TRACE

PSE52

posix_trace_attr_destroy(),

posix_trace_attr_getclockres(), posix_trace_attr_getcreatetime(), posix_trace_attr_getgenversion(), posix_trace_attr_getname(), posix_trace_attr

_getstreamfullpolicy(), posix_trace_attr_getmaxdatasize(), posix_trace_attr

_getmaxsystemeventsize(), posix_trace_attr

_getmaxusereventsize(), posix_trace_attr_getstreamsize(),

posix_trace_attr_init(),

posix_trace_attr_setname(), posix_trace_attr

_setstreamfullpolicy(), posix_trace_attr_setmaxdatasize(), posix_trace_attr_setstreamsize(),

posix_trace_clear(), posix_trace_create(), posix_trace_event(),

posix_trace_eventid_open(),

posix_trace_eventid_equal(), posix_trace_eventid_get_name(), posix_trace_eventtypelist

_getnext_id(), posix_trace_eventtypelist_rewind(),

posix_trace_get_attr(),

posix_trace_get_status(),

posix_trace_getnext_event(),

posix_trace_shutdown(),

posix_trace_start(),

posix_trace_stop(), posix_trace_trygetnext_event()

 

35

_POSIX_TRACE

and

_POSIX_TRACE_LOG

PSE52

posix_trace_attr_getlogfullpolicy(), posix_trace_attr_getlogsize(), posix_trace_attr_setlogfullpolicy(), posix_trace_attr_setlogsize(), posix_trace_close(), posix_trace_open(), posix_trace_rewind(), posix_trace_create_withlog(), posix_trace_flush()

_POSIX_TRACE(PSE52)

_POSIX_TRACE_LOG(PSE52)

36

_POSIX_TRACE

and

_POSIX_TRACE

_EVENT_FILTER

PSE52

posix_trace_eventset_add(),

posix_trace_eventset_del(), posix_trace_eventset_empty(),

posix_trace_eventset_fill(), posix_trace_eventset_ismember(),

posix_trace_get_filter(), posix_trace_set_filter(), posix_trace_trid_eventid_open()

_POSIX_TRAC(PSE52)

_POSIX_TRACE_EVENT_FILTER(PSE52)

五、参考

参考: POSIX标准及RT-Thread实现情况

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/604835.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第八届大数据与物联网国际会议(BDIOT 2024)即将召开!

第八届大数据与物联网国际会议(BDIOT 2024)将于2024年9月14-16日在澳门圣若瑟大学举行。数聚未来,物联世界!BDIOT 2024旨在搭建为各位与会代表展示自己研究成果、分享经验、建立联系和开展合作的平台,共同探讨大数据与物联网领域的未来发展方…

PostgreSQL的学习心得和知识总结(一百四十一)|深入理解PostgreSQL数据库数据库角色的使用及预定义角色的原理

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…

人工智能实验:人脸检测

一、实现目的: 了解人脸检测的主要方法;了解 detectMultiScale 函数的功能及用法;掌握使用 OpenCV 提供的分类器和检测器进行人脸检测的方法。 二、实验设备: 计算机一台;视觉实验软件环境及资源一套(vi…

MySQL-----多表查询(二)

目录 一.子查询概述: 二:标量子查询: 三:列子查询: 四:行子查询: 五:表子查询: 六:练习部分: 写在之前:本文承接上文MySQL-----多…

万用板是什么?和印刷电路板一样吗?

同学们大家好,今天我们继续学习杨欣的《电子设计从零开始》,这本书从基本原理出发,知识点遍及无线电通讯、仪器设计、三极管电路、集成电路、传感器、数字电路基础、单片机及应用实例,可以说是全面系统地介绍了电子设计所需的知识…

Hikyuu-PF-银行股轮动交易策略实现

今天,带来的是“如何使用 Hikyuu 中的投资组合来实现银行股轮动交易策略”。 这个策略的逻辑很简单:持续持有两支市净率最低银行股,然后每月换仓 定义回测周期与回测标的 同样,首先定义回测周期: # 定义回测日期 …

基于Nios-II的流水灯

基于Nios-II的流水灯 一、Qsys设计(一)新建项目(二)Platfrom Designer(三)设置时钟主频(四)添加Nios-II Processor并设置(五)添加JTAG并配置(六&a…

android_systemServer进程启动流程

一,systemServer进程是被Zygote进程fork出来的,具体代码, 在startBootstrapServices、startCoreServices、startOtherServices、startApexServices中,对各类服务进行了启动,比如我们常见的ActivityManagerService、Pa…

AI视频教程下载:用ChatGP在24小时内制作发布畅销电子书

这门变革性的课程使您能够利用内容生成和自行出版的新兴AI世界。利用ChatGPT 4等尖端人工智能工具,也称为ChatGPT Plus,您将获得所需的技能集,以创建引人入胜的内容,掌握设计,并成为亚马逊KDP上成功的自行出版作者 。 …

Parallels Desktop 19 for Mac v19.3.0.54924中文破解版

Parallels Desktop 19 for Mac v19.3.0.54924中文破解版是一款强大的虚拟机软件,支持多操作系统,提供卓越的虚拟化技术,确保流畅稳定的运行。新增特色功能如共享打印、TouchID集成等,提供便捷高效的虚拟机体验。界面美观现代&…

理解DPI:从数码到打印的深入分析

目录标题 1. DPI的定义2. DPI与图像质量2.1. 对于打印来说:2.2. 对于屏幕显示来说: 3. 如何计算DPI4. 调整DPI4.1. 提高DPI:4.2. 降低DPI: 5. DPI与图像文件大小的关系6. 实际应用中的DPI6.1. 专业打印:6.2. 屏幕设计&…

含义:理财风险等级R1、R2、R3、R4、R5

理财风险等级R1、R2、R3代表什么,为什么R1不保本,R2可能亏损 不尔聊投资https://author.baidu.com/home?frombjh_article&app_id1704141696580953 我们购买理财产品的时候,首先都会看到相关产品的风险等级。风险等级约定俗成有5级&…

谷歌十诫 Ten things we know to be true, Google‘s Core values

雷军曾经要求金山人人都必须能背谷歌十诫 我们所知的十件事 当谷歌刚成立几年时,我们首次写下了这“十件事”。我们时不时回顾这个列表,看看它是否仍然适用。我们希望它仍然适用——你也可以要求我们做到这点。 1. Focus on the user and all else wi…

三、Redis五种常用数据结构-Hash

Hash是redis中常用的一种无序数据结构。结构类似HashMap。 具体结构如下:key field value 1、优缺点 1.1、优点 同类数据归类整合储存,方便数据管理。相比于string操作消耗内存和CPU更小。分字段存储,节省网络流量。 1.2、缺点 过期时间…

Java数组的使用

前言 这里我使用的是IDEA编译器进行演示 数组的创建与初始化 创建格式: T[] 数组名 new T[N] T表示数组存放的数据类型,N表示数组的大小。 T[] 表示数组的类型。 这里要注意和C语言不同的是C语言使用类似int arr[10]这样的结构进行创建数组&#xff0c…

24V转3.8V用什么芯片方案-AH8310

在将24V降压至3.8V的电源转换中,AH8310是一个理想的选择。这款芯片是一款降压转换器,输入电压范围为4.5V至36V,输出电压可调,峰值电流可达1.5A。AH8310采用SOT23-6封装,内置MOS,适用于各种应用场合&#xf…

modprobe: can‘t open ‘modules.dep‘: No such file or directory

使用modprobe会提示modprobe: cant open modules.dep: No such file or directory 直接输入depmod即可。 如果depmod没有效果,则需要重新配置编译你的根文件。 在busybox配置界面进入linux Module Utilities, 上下键选择depmod,并按 y 选中&#xff0c…

【vue+vue-treeselect】根据指定字段,如isLeaf(是否末级节点),设置只允许末级节点可以选

1、当项目有特殊要求,必须根据某个字段的值去判断,是否节点可以选,即使已经是末级节点了,还是需要根据字段判断是否禁用 (1) :flat"true"一定要设置 (2)获取数据源的时候,设置下禁用…

leetcode91.解码方法(动态规划)

问题描述: 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : A -> "1" B -> "2" ... Z -> "26" 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可…

NineData亮相2024中国移动算力网络大会

4月28日至29日,2024中国移动算力网络大会在苏州召开。大会以“算力网络点亮AI新时代”为主题,全面展示了中国移动最新算力网络成果与能力。江苏省委常委、苏州市委书记刘小涛,副省长赵岩出席开幕式并致辞。内蒙古自治区副主席白清元出席。中国…
最新文章