您的位置:首页 > 其它

RTEMS POSIX API 用户指南

2016-01-28 17:58 387 查看


RTEMS POSIX API 用户指南

posix_users.RTEMS_POSIX_API用户指南.双语.V20131224.pdf

RTEMS 的posix_users文档的原创翻译。

RTEMS 文档一共有12篇,我已经译了8篇,有两篇没有翻译价值,还有两篇没有译,暂时也不会译了。这是最后一篇。
目录

前言 27

致谢 27

1 进程创建和执行管理器 29

1.1 简介 29

1.2 背景知识 30

1.3 操作 30

1.4 指令 30

1.4.1 fork - 创建进程 31

1.4.2 execl - 执行一个文件 32

1.4.3 execv - 执行一个文件 33

1.4.4 execle - 执行一个文件 34

1.4.5 execve - 执行一个文件 35

1.4.6 execlp - 执行一个文件 36

1.4.7 execvp - 执行一个文件 37

1.4.8 pthread_atfork - 寄存器分叉处理程序 38

1.4.9 wait - 等待进程终止 39

1.4.10 waitpid - 等待进程终止 40

1.4.11 _exit - 终止进程 41

2 信号管理器 43

2.1 简介 43

2.2 背景知识 44

2.2.1 信号 44

2.2.2 信号传送 45

2.3 操作 46

2.3.1 信号集管理 46

2.3.2 阻塞直到信号产生 46

2.3.3 发送信号 47

2.4 指令 47

2.4.1 sigaddset - 添加信号到信号集 48

2.4.2 sigdelset - 从信号集删除信号 49

2.4.3 sigfillset - 填充信号集 50

2.4.4 sigismember - 信号是信号集的成员吗? 51

2.4.5 sigemptyset - 清空信号集 52

2.4.6 sigaction - 检查和更改信号的操作 53

2.4.7 pthread_kill - 发送信号到线程 56

2.4.8 sigprocmask - 检查和更改进程阻塞的信号 57

2.4.9 pthread_sigmask - 检查和更改线程阻塞的信号 59

2.4.10 kill - 发送信号到进程 61

2.4.11 sigpending - 检查挂起的信号 62

2.4.12 sigsuspend - 等待一个信号 63

2.4.13 pause - 推迟进程执行 64

2.4.14 sigwait - 同步接受信号 65

2.4.15 sigwaitinfo - 同步接受信号 66

2.4.16 sigtimedwait - 同步接受具有超时的信号 68

2.4.17 sigqueue - 排队信号到进程 70

2.4.18 alarm - 调度警报 72

2.4.19 ualarm - 以微秒为单位的警报 73

3 进程环境管理器 75

3.1 简介 75

3.2 背景知识 76

3.2.1 用户和组 76

3.2.2 用户和组的名称 77

3.2.3 环境变量 78

3.3 操作 78

3.3.1 访问用户和组id 78

3.2.2 访问环境变量 78

3.4 指令 79

3.4.1 getpid - 获得进程ID 80

3.4.2 getppid - 获得父进程ID 81

3.4.3 getuid - 获得用户ID 82

3.4.4 geteuid - 获得有效用户ID 83

3.4.5 getgid - 获得真实组ID 84

3.4.6 getegid - 获得有效组ID 85

3.4.7 setuid - 设置用户ID 86

3.4.8 setgid - 设置组ID 87

3.4.9 getgroups - 获得补充组ID 88

3.4.10 getlogin - 获得用户名 89

3.4.11 getlogin_r - 可重入地获得用户名 90

3.4.12 getpgrp - 获得进程组ID 91

3.4.13 setsid - 创建会话和进程组ID 92

3.4.14 setpgid - 设置作业控制的进程组ID 93

3.4.15 uname - 获得系统名称 94

3.4.16 times - 获得进程时间 95

3.4.17 getenv - 获得环境变量 96

3.4.18 setenv -设置环境变量 97

3.4.19 ctermid - 生成终端路径名 98

3.4.20 ttyname - 确定终端设备名称 99

3.4.21 ttyname_r - 可重入地确定终端设备名称 100

3.4.22 isatty - 确定文件描述符是否是终端 101

3.4.23 sysconf - 获得可配置的系统变量 102

4 文件和目录管理器 103

4.1 简介 103

4.2 背景知识 105

4.2.1 路径名评估 105

4.3 操作 105

4.4 指令 106

4.4.1 opendir - 打开目录 107

4.4.2 readdir - 读取目录 109

4.4.3 rewinddir - 复位readdir()指针 111

4.4.4 scandir - 扫描匹配项的目录 112

4.4.5 telldir - 返回目录流中的当前位置 113

4.4.6 closedir - 结束目录读取操作 114

4.4.7 chdir - 更改当前工作目录 115

4.4.8 fchdir - 更改当前工作目录 117

4.4.9 getcwd - 获得当前工作目录 119

4.4.10 open - 打开文件 121

4.4.11 creat - 创建新文件或重写存在的文件 125

4.4.12 umask - 设置文件创建掩码 127

4.4.13 link - 创建指向文件的链接 128

4.4.14 symlink - 创建指向文件的符号连接 130

4.4.15 readlink - 获取符号链接目标的名称 132

4.4.16 mkdir - 创建目录 134

4.4.17 mkfifo - 创建FIFO特殊文件 136

4.4.18 unlink - 移除目录项 138

4.4.19 rmdir - 删除目录 140

4.4.20 rename - 重命名文件 142

4.4.21 stat - 获得关于文件的信息 145

4.4.22 fstat - 获得文件状态 147

4.4.23 lstat - 获得文件状态 148

4.4.24 access - 检查文件权限 149

4.4.25 chmod - 更改文件模式 151

4.4.26 fchmod - 更改文件权限 153

4.4.27 getdents - 获得目录项 155

4.4.28 chown - 更改文件所有者和/或组 157

4.4.29 utime - 更改inode的访问和/或修改时间 159

4.4.30 ftruncate - 截断文件到指定的长度 160

4.4.31 truncate - 截断文件到指定的权限 162

4.4.32 pathconf - 获得文件的配置值 164

4.4.33 fpathconf - 获得文件的配置值 167

4.4.34 mknod - 创建目录 170

5 输入和输出原始管理器 173

5.1 简介 173

5.2 背景知识 174

5.3 操作 174

5.4 指令 175

5.4.1 pipe - 创建进程间通道 176

5.4.2 dup - 复制打开文件描述符 177

5.4.3 dup2 - 复制打开文件描述符 178

5.4.4 close - 关闭文件 180

5.4.5 read - 从文件读取 181

5.4.6 write - 写入到文件 184

5.4.7 fcntl - 操纵打开文件描述符 186

5.4.8 lseek - 重定位读/写文件偏移量 190

5.4.9 fsync - 将文件的完整核心内状态与磁盘上的状态同步 192

5.4.10 fdatasync - 将文件的核心内数据与磁盘上的数据同步 193

5.4.11 sync - 安排文件系统更新 195

5.4.12 mount - 挂载文件系统 196

5.4.13 unmount - 卸载文件系统 197

5.4.14 readv - 从文件定向读取 198

5.4.15 writev - 定向写入到文件 200

5.4.16 aio_read - 异步读取 202

5.4.17 aio_write - 异步写入 203

5.4.18 lio_listio - I/O所指向的列表 204

5.4.19 aio_error - 检索异步I/O操作的错误状态 205

5.4.20 aio_return - 检索异步I/O操作的返回状态 206

5.4.21 aio_cancel - 取消异步I/O请求 207

5.4.22 aio_suspend - 等待异步I/O请求 208

5.4.23 aio_fsync - 异步文件同步化 209

6 设备特定的和类特定的功能管理器 211

6.1 简介 211

6.2 背景知识 212

6.3 操作 212

6.4 指令 212

6.4.1 cfgetispeed - 读取终端输入波特率 213

6.4.2 cfgetospeed - 读取终端输出波特率 214

6.4.3 cfsetispeed - 设置终端输入波特率 215

6.4.4 cfsetospeed - 设置终端输出波特率 216

6.4.5 tcgetattr - 获得终端属性 217

6.4.6 tcsetattr - 设置终端属性 218

6.4.7 tcsendbreak - 发送暂停到终端 219

6.4.8 tcdrain - 等待所有输出被传输到终端 220

6.4.9 tcflush - 丢弃终端数据 221

6.4.10 tcflow - 挂起/重启终端输出 222

6.4.11 tcgetpgrp - 获得前台进程组ID 223

6.4.12 tcsetpgrp - 设置前台进程组ID 224

7 适用于C编程语言管理器的语言特定的服务 225

7.1 简介 225

7.2 背景知识 226

7.3 操作 226

7.4 指令 227

7.4.1 setlocale - 设置当前的位置 228

7.4.2 fileno - 获取此文件的文件描述符编号 229

7.4.3 fdopen - 将流与文件描述符关联 230

7.4.4 flockfile - 获得文件流的所有权 231

7.4.5 ftrylockfile - 轮询获得文件流的所有权 232

7.4.6 funlockfile - 释放文件流的所有权 233

7.4.7 getc_unlocked - 在未锁定的情况下获得字符 234

7.4.8 getchar_unlocked - 在未锁定的情况下从stdin获得字符 235

7.4.9 putc_unlocked - 在未锁定的情况下放置字符 236

7.4.10 putchar_unlocked - 在未锁定的情况下放置字符到stdin 237

7.4.11 setjmp - 保存非本地跳转的上下文 238

7.4.12 longjmp - 非本地跳转到保存的上下文 239

7.4.13 sigsetjmp - 保存非本地跳转的具有信号状态的上下文 240

7.4.14 siglongjmp - 使用信号状态非本地跳转到保存的上下文 241

7.4.15 tzset - 初始化时间转换信息 242

7.4.16 strtok_r - 可重入地提取来自字符串的令牌 243

7.4.17 asctime_r - 可重入的struct tm到ASCII时间的转换 244

7.4.18 ctime_r - 可重入的time_t到ASCII时间的转换 245

7.4.19 gmtime_r - 可重入的UTC时间转换 246

7.4.20 localtime_r - 可重入的本地时间转换 247

7.4.21 rand_r - 可重入的随机数发生器 248

8 系统数据库管理器 249

8.1 简介 249

8.2 背景知识 249

8.3 操作 250

8.4 指令 250

8.4.1 getgrgid - 获得组文件的ID项 251

8.4.2 getgrgid_r - 可重入地获得组文件的ID项 252

8.4.3 getgrnam - 获得组文件的名称项 253

8.4.4 getgrnam_r - 可重入地获得组文件的名称项 254

8.4.5 getpwuid - 获得密码文件的UID项 255

8.4.6 getpwuid_r - 可重入地获得密码文件的UID项 256

8.4.7 getpwnam - 获得密码文件的名称项 257

8.4.8 getpwnam_r - 可重入地获得密码文件的名称项 258

9 信号量管理器 259

9.1 简介 259

9.2 背景知识 260

9.2.1 理论 260

9.2.2 "sem_t"结构 260

9.2.3 建立信号量属性集 260

9.3 操作 261

9.3.1 用作二进制信号量 261

9.4 指令 261

9.4.1 sem_init - 初始化未指定名称的信号量 262

9.4.2 sem_destroy - 销毁未指定名称的信号量 264

9.4.3 sem_open - 打开指定名称的信号量 265

9.4.4 sem_close - 关闭指定名称的信号量 267

9.4.5 sem_unlink - 断开已命名信号量 268

9.4.6 sem_wait - 等待信号量 270

9.4.7 sem_trywait - 非阻塞等待信号量 271

9.4.8 sem_timedwait - 等待信号量指定的时间 272

9.4.9 sem_post - 解锁信号量 274

9.4.10 sem_getvalue - 获得信号量的值 275

10 互斥体管理器 277

10.1 简介 277

10.2 背景知识 278

10.2.1 互斥体属性 278

10.2.2 PTHREAD_MUTEX_INITIALIZER 279

10.3 操作 279

10.4 服务 279

10.4.1 pthread_mutexattr_init - 初始化互斥体属性集 280

10.4.2 pthread_mutexattr_destroy - 销毁互斥体属性集 281

10.4.3 pthread_mutexattr_setprotocol - 设置阻塞协议 282

10.4.4 pthread_mutexattr_getprotocol - 获得阻塞协议 284

10.4.5 pthread_mutexattr_setprioceiling - 设置优先级上限 285

10.4.6 pthread_mutexattr_getprioceiling - 获得优先级上限 286

10.4.7 pthread_mutexattr_setpshared - 设置可见性 287

10.4.8 pthread_mutexattr_getpshared - 获得可见性 288

10.4.9 pthread_mutex_init - 初始化互斥体 289

10.4.10 pthread_mutex_destroy - 销毁互斥体 290

10.4.11 pthread_mutex_lock - 锁定互斥体 291

10.4.12 pthread_mutex_trylock - 轮询锁定互斥体 292

10.4.13 pthread_mutex_timedlock - 锁定具有超时的互斥体 293

10.4.14 pthread_mutex_unlock - 解锁互斥体 294

10.4.15 pthread_mutex_setprioceiling - 动态设置优先级上限 295

10.4.16 pthread_mutex_getprioceiling - 动态获得优先级上限 296

11 条件变量管理器 297

11.1 简介 297

11.2 背景知识 298

11.3 操作 298

11.4 指令 298

11.4.1 pthread_condattr_init -初始化条件变量属性集 299

11.4.2 pthread_condattr_destroy - 销毁条件变量属性集 300

11.4.3 pthread_condattr_setpshared - 设置进程共享属性 301

11.4.4 pthread_condattr_getpshared - 获得进程共享属性 302

11.4.5 pthread_cond_init - 初始化条件变量 303

11.4.6 pthread_cond_destroy - 销毁条件变量 304

11.4.7 pthread_cond_signal - 用信号发送条件变量 305

11.4.8 pthread_cond_broadcast - 广播条件变量 306

11.4.9 pthread_cond_wait - 等待条件变量 307

11.4.10 pthread_cond_timedwait - 超时等待条件变量 308

12 内存管理管理器 309

12.1 简介 309

12.2 背景知识 310

12.3 操作 310

12.4 指令 310

12.4.1 mlockall - 锁定进程的地址空间 311

12.4.2 munlockall - 解锁进程的地址空间 312

12.4.3 mlock - 锁定一系列进程地址空间 313

12.4.4 munlock - 解锁一系列进程地址空间 314

12.4.5 mmap - 映射进程地址到内存对象 315

12.4.6 munmap - 取消映射先前映射的地址 316

12.4.7 mprotect - 更改内存保护 317

12.4.8 msync - 内存对象同步 318

12.4.9 shm_open - 打开共享的内存对象 319

12.4.10 shm_unlink - 移除共享的内存对象 320

13 调度器管理器 321

13.1 简介 321

13.2 背景 321

13.2.1 优先级 321

13.2.2 调度策略 322

13.3 操作 323

13.4 指令 323

13.4.1 schedget_priority_min - 获得最低优先级值 324

13.4.2 sched_get_priority_max - 获得最高优先级值 325

13.4.3 sched_rr_get_interval - 获得时间片轮转量子 326

13.4.4 sched_yield - 让出处理器 327

14 时钟管理器 329

14.1 简介 329

14.2 背景知识 330

14.3 操作 330

14.4 指令 330

14.4.1 clock_gettime - 获取日历时间 331

14.4.2 clock_settime - 设置日历时间 332

14.4.3 clock_getres - 获得时钟分辨率 333

14.4.4 sleep - 延迟进程执行 334

14.4.5 usleep - 以微秒为单位延迟进程执行 335

14.4.6 nanosleep - 具有高分辨率的延迟 337

14.4.7 gettimeofday - 获得日历时间 338

14.4.8 time - 获得以秒为单位的时间 339

15 定时器管理器 341

15.1 简介 341

15.2 背景知识 341

15.3 操作 341

15.4 系统调用 342

15.4.1 timer_create - 创建每进程定时器 343

15.4.2 timer_delete - 删除每进程定时器 344

15.4.3 timer_settime - 设置下一个定时器到期时间 345

15.4.4 timer_gettime - 获得定时器上的剩余时间 346

15.4.5 timer_getoverrun - 获得定时器溢出计数 347

16 消息传递管理器 349

16.1 简介 349

16.2 背景知识 349

16.2.1 理论 350

16.2.2 消息 350

16.2.3 消息队列 350

16.2.4 建立消息队列属性集 351

16.2.5 队列上的消息通知 352

16.2.6 POSIX解释问题 353

16.3 操作 354

16.3.1 打开或创建消息队列 354

16.3.2 关闭消息队列 354

16.3.3 移除消息队列 354

16.3.4 发送消息到消息队列 355

16.3.5 从消息队列接收消息 355

16.3.6 在空队列上收到消息的通知 356

16.3.7 设置消息队列属性 357

16.3.8 获得消息队列属性 358

16.4 指令 358

16.4.1 mq_open - 打开消息队列 359

16.4.2 mq_close - 关闭消息队列 362

16.4.3 mq_unlink - 移除消息队列 363

16.4.4 mq_send - 发送消息到消息队列 365

16.4.5 mq_receive - 从消息队列接收消息 367

16.4.6 mq_notify - 通知进程消息可用 369

16.4.7 mq_setattr - 设置消息队列属性 371

16.4.8 mq_getattr - 获得消息队列属性 373

17 线程管理器 375

17.1 简介 375

17.2 背景知识 376

17.2.1 线程属性 377

17.3 操作 378

17.4 服务 378

17.4.1 pthread_attr_init - 初始化线程属性集 379

17.4.2 pthread_attr_destroy - 销毁线程属性集 381

17.4.3 pthread_attr_setdetachstate - 设置分离状态 382

17.4.4 pthread_attr_getdetachstate - 获得分离状态 384

17.4.5 pthread_attr_setstacksize - 设置线程栈大小 385

17.4.6 pthread_attr_getstacksize - 获得线程栈大小 386

17.4.7 pthread_attr_setstackaddr - 设置线程栈地址 387

17.4.8 pthread_attr_getstackaddr - 获得线程栈地址 388

17.4.9 pthread_attr_setscope - 设置线程调度作用域 389

17.4.10 pthread_attr_getscope - 获得线程调度作用域 391

17.4.11 pthread_attr_setinheritsched - 设置继承调度器标志 392

17.4.12 pthread_attr_getinheritsched - 获得继承调度器标志 394

17.4.13 pthread_attr_setschedpolicy - 设置调度策略 395

17.4.14 pthread_attr_getschedpolicy - 获得调度策略 397

17.4.15 pthread_attr_setschedparam - 设置调度参数 398

17.4.16 pthread_attr_getschedparam - 获得调度参数 399

17.4.17 pthread_create - 创建线程 400

17.4.18 pthread_exit - 终止当前线程 403

17.4.19 pthread_detach - 分离线程 405

17.4.20 pthread_join - 等待线程终止 406

17.4.21 pthread_self - 获得线程ID 408

17.4.22 pthread_equal - 比较线程ID 409

17.4.23 pthread_once - 动态包初始化 410

17.4.24 pthread_setschedparam - 设置线程调度参数 411

17.4.25 pthread_getschedparam - 获得线程调度参数 413

18 键管理器 415

18.1 简介 415

18.2 背景知识 415

18.3 操作 415

18.4 指令 416

18.4.1 pthread_key_create - 创建线程特定的数据键 417

18.4.2 pthread_key_delete - 删除线程特定的数据键 418

18.4.3 pthread_setspecific - 设置线程特定的键值 419

18.4.4 pthread_getspecific - 获得线程特定的键值 420

19 线程取消管理器 421

19.1 简介 421

19.2 背景知识 421

19.3 操作 421

19.4 指令 422

19.4.1 pthread_cancel -取消线程的执行 423

19.4.2 pthread_setcancelstate - 设置可取消性状态 424

19.4.3 pthread_setcanceltype - 设置可取消性类型 425

19.4.4 pthread_testcancel - 创建取消点 426

19.4.5 pthread_cleanup_push - 建立取消处理程序 427

19.4.6 pthread_cleanup_pop - 移除取消处理程序 428

20 由C库(libc)提供的服务 429

20.1 简介 429

20.2 标准工具函数(stdlib.h) 429

20.3 字符类型的宏和函数(ctype.h) 431

20.4 输入和输出(stdio.h) 432

20.5 字符串和内存(string.h) 434

20.6 信号处理(signal.h) 436

20.7 时间函数(time.h) 436

20.8 区域设置(locale.h) 436

20.9 可重入版本的函数 437

20.10 杂项宏和函数 440

20.11 可变参数列表 440

20.12 可重入的系统调用 440

21 由数学库(libm)提供的服务 441

21.1 简介 441

21.2 标准数学函数(math.h) 441

22 实现状态 445

命令和变量索引 447

概念索引 449

1 Process Creation and Execution Manager

1 进程创建和执行管理器

1.1 Introduction

1.1 简介

The process creation and execution manager provides the functionality associated with the creation and termination of processes.

进程创建和执行管理器提供与进程的创建和终止相关联的功能。

The directives provided by the process creation and execution manager are:

由进程创建和执行管理器提供的指令有:

 fork - Create a Process

 execl - Execute a File

 execv - Execute a File

 execle - Execute a File

 execve - Execute a File

 execlp - Execute a File

 execvp - Execute a File

 pthread_atfork - Register Fork Handlers

 wait - Wait for Process Termination

 waitpid - Wait for Process Termination

 _exit - Terminate a Process

 fork - 创建进程

 execl - 执行一个文件

 execv - 执行一个文件

 execle - 执行一个文件

 execve - 执行一个文件

 execlp - 执行一个文件

 execvp - 执行一个文件

 pthread_atfork - 寄存器分叉处理程序

 wait - 等待进程终止

 waitpid - 等待进程终止

 _exit - 终止进程

1.2 Background

1.2 背景知识

POSIX process functionality can not be completely supported by RTEMS. This is because RTEMS provides no memory protection and implements a single process, multi-threaded execution model. In this light, RTEMS provides none of the routines that are associated
with the creation of new processes. However, since the entire RTEMS application (e.g. executable) is logically a single POSIX process, RTEMS is able to provide implementations of many operations on processes. The rule of thumb is that those routines provide
a meaningful result. For example, getpid() returns the node number.

POSIX进程功能不能被RTEMS完全支持。这是因为RTEMS没有提供内存保护和实现单进程、多线程的执行模式。有鉴于此,RTEMS没有提供一个与创建新进程相关联的例程。然而,由于整个RTEMS应用程序(如可执行文件)逻辑上是单个POSIX进程,RTEMS能够提供在进程上的许多操作的实现。经验法则是那些例程提供有意义的结果。例如,getpid()返回节点号。

1.3 Operations

1.3 操作

The only functionality method defined by this manager which is supported by RTEMS is the _exit service. The implementation of _exit shuts the application down and is equivalent to invoking either exit or rtems_shutdown_executive.

由RTEMS支持的此管理器所定义的唯一功能性方法是_exit服务。_exit的实现关闭应用程序,相当于调用exit或rtems_shutdown_executive。

全文下载地址:http://download.csdn.net/detail/zhumaill/7019645
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: