注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络操作系统其他操作系统Solaris系统编程

Solaris系统编程

Solaris系统编程

定 价:¥99.00

作 者: (加)提尔;云巅工作室译
出版社: 机械工业出版社
丛编项: Sun公司核心技术丛书
标 签: solaris

购买这本书可以去


ISBN: 9787111185710 出版时间: 2006-03-01 包装: 平装
开本: 16开 页数: 855 字数:  

内容简介

  本书使用实际安全研究、代码示例和图示,为系统程序员提供了全面、实用的指导,涵盖Solaris操作系统的所有版本,包括版本2.5到版本9,而且与SPARC和x86平台相关。从I/O到IPC、从伪终端到本地化、从进程到门,本书阐述了该环境的特征和微妙之处。本书主要特点?Solaris系统编程中使用的术语和功能。?基本知识:实用工具函数、文件I/O、标准I/O库、日期/时间操作、用户/组、系统信息、资源限制、安全C编程。?I/O深入学习:文件、目录、文件系统、终端I/O和高级I/O。?进程和进程控制:UNIX进程环境、关系、信号和守护进程。?进程间通信:管道、FIFO、System V IPC工具、门等。?可移植性向导:介绍Solaris具有的所有特征。

作者简介

  RichTeer,加拿大不列颠哥伦比亚省基洛纳市的一名UNIX顾问,UNIX社区中一名受人尊重的资深成员,知名的Solaris系统管理和编程专家,持有SCSA、SCNA和SCSA证书。他具有15年的C编程经验、9年多从事Sun系统工作的经验,其中有2年是SunMicrosystems公司的技术支持顾问。同时,他也是W.RichlardStevens的畅销书((UNIXNetworkProgramming》(第2版)的技术审校。

图书目录

第1章 引  言
1.1 简介
1.1.1  在Solaris上编译C程序
1.2 登录
1.3 shell
1.4 文件、目录和文件系统
示例:简单目录清单
包含头文件
1.5 输入和输出
1.6 程序、进程和线程
1.7 错误处理
1.8 用户标识
1.9 信号
1.10 UNIX时间值
1.11 系统调用和库函数
1.12 64位编程概述
1.12.1 编写纯64位的程序
1.12.2 编译和安装64位的程序
1.12.3 大文件的编译环境
1.12.4 过渡期的大文件编译环境
1.13 小结
练习
第2章 Solaris简史
2.1 引言
2.2 初期:SunOS
2.3 SunOS之后:Solaris
2.4 标准
2.4.1 ANSI/ISO/IEC C
2.4.2 系统V接口定义
2.4.3 IEEE POSIX
2.4.4 开放组的XPG4
2.4.5 单一UNIX规范
2.5 Solaris 2.5
2.5.1 Solaris 2.5.1
2.6 Solaris 2.6
2.7 Solaris 7
2.8 Solaris 8
2.9 Solaris 9
2.10 Solaris标准遵守情况
2.11 编译符合标准的应用程序
2.12 小结
练习
第二部分 基本主题
第3章 应用程序函数
3.1 引言
3.2 处理字符类
3.2.1 测试字符类成员资格
3.2.2 改变字符类成员资格
3.2.3字符类小结
3.3 处理字符串
3.3.1 得到字符串的长度
3.3.2 比较字符串
3.3.3 连接字符串
3.3.4 复制字符串
3.3.5 字符串查找函数
3.3.6 复制字符串
3.3.8 转换字符串的函数
3.9 把字符串转换为数字
3.3.10 把数字转换成字符串
3.4 处理字节数组
3.4.1 比较字节数组
3.4.2 复制字节数组
3.4.3 查找字节数组
3.5 动态内存
3.5.1 内存对齐
3.5.2 分配动态内存
3.5.3 释放动态内存
3.6 其他的内存管理包
3.6.1 malloc库
3.6.2 bsdmalloc库
3.6.3 mapmalloc库
3.6.4 watchmalloc共享对象
3.6.5 比较malloc库
3.7 临时文件
3.7.1 产生临时文件名
3.7.2 创建临时文件
3.8 分析命令行参数
3.9 错误报告
3.10 挂起进程
3.11 小结
练习

第4章 基本的文件I/O
4.1 引言
4.2 文件描述符
4.3 open函数

4.6 lseek和llseek函数
4.7 tell函数
4.8 read和pread函数
4.9 write和pwrite函数
4.10 readn和writen函数
4.11 I/O效率
4.12 文件共享
4.13 原子的操作
4.14 dup和dup2函数
4.15 fcntl函数
4.16 ioctl函数
4.17 fdwalk函数
4.18 直接I/O
4.19 /dev/fd文件系统
4.20 小结
第5章 标准I/O库
5.1 引言
5.2 文件流、数据类型和常量
5.3 标准输入、标准输出和标准错误输出
5.4 打开文件流
5.5 关闭文件流
5.6 读和写
  5.6.1 字符输入函数
  5.6.2 字符输出函数
  5.6.3 行输入函数
  5.6.4 行输出函数
  5.6.5 二进制I/O
5.7 流状态
5.8 格式化I/O
  5.8.1 格式输出
  5.8.2 格式输入
  5.8.3 格式转换规范
  5.8.4 C语言转义序列
5.9 定位流
5.10 文件流锁定
  5.10.1 未锁定的文件流I/O
5.11 缓冲
5.12 标准I/O的效率
5.13 小结
练习
第6章 日期和时间操作
6.1 引言
6.2 转换时间的复杂性
6.3 获得当前时间
  6.3.1 difftime函数
6.4 设置当前时间
6.5 获得当前时区
6.6 在UNIX时间和日历时间进行转换
  6.6.1 localtime和localtime_r函数
  6.6.2 gmtime和gmtime_r函数
  6.6.3 mktime函数
6.7 格式日期I/O
  6.7.1 将日期转换成格式字符串
  6.7.2 将格式字符串转换成日期
6.8 小结
6.3 编写一个程序,显示世界上不同时区的当前时间,包括北半球和南半球位置。
第7章 用户和组
7.1 引言
7.2 用户名
7.3 用户ID
7.4 组ID
7.5 组成员资格

7.8 读取和加密口令
7.9 组文件
7.10 utmpx和wtmpx文件
7.11 utmp和wtmp文件
7.12 lastlog文件
7.13 shells文件
7.14 总结
第8章 系统信息和资源限制
8.1 引言
8.2 系统信息和识别
8.3 系统资源限制
8.4 每个进程的资源限制
8.5 资源控制工具
8.6 资源控制示例
8.7 资源使用信息
8.8 使用/proc文件系统确定资源使用信息
8.9 确定系统的平均负荷
8.10 总结
练习
第9章 安全的C编程
9.1 引言
9.2 缓冲区溢出
9.3 程序的环境
9.4 防御性编程
9.5 最小特权原则
9.6 使用chroot“监牢”
9.7 编写安全程序的技巧
9.8 总结
第三部分  输入/输出
第10章 文件和目录
10.1 引言
10.2路径名组件
10.3 stat、fstat和lstat函数
10.4 文件类型
10.5 设置-用户-ID和设置-组-ID
10.6 粘着位
10.7 文件访问权限
10.8 access函数
10.9 umask函数
10.10 chmod和fchmod函数
10.11 chown、fchown和lchown函数
10.12 文件尺寸
  10.12.1 稀疏文件
10.13 文件截取
10.14 文件系统
10.15 link和unlink函数
10.16 remove和rename函数
10.17 符号链接
10.18 解析可能包含符号链接的路径
  10.18.1 resolvepath函数
  10.18.2 realpath函数
10.19 symlink和readlink函数
10.20 文件时间
10.21 改变文件的访问和修改时间
  10.21.1 utime函数
  10.21.2 utimes函数
10.22 创建和移除目录
10.23 读取目录
  10.23.1 opendir和fdopendir函数
  10.23.2 readdir和readdir_r函数
  10.23.3 seekdir、rewinddir和telldir函数
  10.23.4 closedir函数
  10.23.5 ftw和nftw函数
10.24 chdir、fchdir和getcwd函数
10.25 chroot和fchroot函数
10.26 特殊文件
10.27 sync和fsync函数
10.28 综合讨论
10.29 小结
练习
第11章 使用文件系统
11.1 引言
11.2 磁盘术语
11.3 已挂载的文件系统表
  11.3.2 hasmntopt函数
  11.3.3 resetmnttab函数
  11.3.4 putmntent函数
11.4 mntfs文件系统ioctl命令
11.5 文件系统默认值
  11.5.1 getvfsent系列函数
  11.5.2 添加项到/etc/vfstab
11.6 挂载和卸载文件系统
  11.6.1 mount函数
  11.6.2 umount和umount2函数
11.7 获得文件系统的状态
  11.7.1 statvfs和fstatvfs函数
  11.7.2 ustat函数
11.8 读取文件系统数据结构
  11.8.1 超级块
  11.8.2 信息节点表
  11.8.3 柱面组
11.9 总结
练习
第12章 终端I/O
12.1 引言
12.2 终端I/O概述
12.3 特殊的输入字符
12.4 获得和设置终端属性
12.5 终端选项标志
  12.5.1 stty命令
12.6 波特率函数
12.7 行控制函数
  12.7.1 tcdrain函数
  12.7.2 tcflow函数
  12.7.3 tcflush函数
  12.7.4 tcsendbreak函数
12.8 终端标识
  12.8.1 ctermid和ctermid_r函数
  12.8.2 isatty函数
  12.8.3 ttyname和ttyname_r函数
12.9 规范模式
12.10 非规范模式
12.11 终端窗口尺寸
12.12 设备无关的终端控制
12.13 小结
练习
第13章 高级I/O
13.1 引言
13.2 非阻塞I/O
13.3 记录锁定
13.4 使用fcntl的记录锁定
13.5 使用lockf的记录锁定
13.6 死锁和活锁
13.7 锁继承性和释放
13.8 强制锁与建议锁的比较
13.9 STREAMS I/O子系统
  13.9.1 isastream函数
13.10 STREAMS消息
13.11 putmsg和putpmsg函数
13.12 getmsg和getpmsg函数
13.13 STREAMS ioctl操作
13.14 使用read和write的STREAMS I/O
  13.14.1 从STREAMS设备中读取
  13.4.2 写入到STREAMS设备
13.15 I/O多路复用
13.16 select函数
13.17 poll函数
13.18 /dev/poll设备驱动程序
13.19 异步I/O
13.20 和STREAMS设备文件一起的异步I/O
13.21 和其他文件一起的异步I/O
  13.21.1 aioread和aiowrite函数
  13.21.2 aiowait函数
  13.21.3 aiocancel函数
13.22 readv和writev函数
13.23 sendfile和sendfilev函数
  13.23.1 sendfile函数
  13.23.2 sendfilev函数
13.24 内存映射的I/O
13.25 mmap和munmap函数
13.26 mprotect函数
13.27 madvise函数
13.28 msync函数
13.29 在内存中锁定页面
  13.29.1 mlock和munlock函数
  13.29.2 mlockall和munlockall函数
  13.29.3 plock函数
13.30 memcntl函数
13.31 内存映射I/O的小结
13.32 访问控制列表
13.33 acl和facl函数
13.34 aclfromtext和acltotext函数
13.35 aclcheck函数
13.36 aclfrommode和acltomode函数
13.37 aclsort函数
13.38 扩展的文件属性
13.39 openat和attropen函数
13.40 fstatat函数
13.41 unlinkat函数
13.42 renameat函数
13.43 fchownat函数
13.44 futimesat函数
13.45 改变扩展属性文件权限
13.46 小结
练习
第四部分 进程和进程控制
第14章 UNIX进程的环境
14.1 引言
14.2 进程启动
  14.2.1 main函数
14.3 进程终止
  14.3.1 exit和_exit函数
  14.3.2 atexit函数
14.4 命令行参数
  14.4.1 getexecname函数
14.5 环境变量
  14.5.1 getenv函数
  14.5.2 putenv函数
14.6 C程序的内存布局
  14.6.1 查找程序中最近的位置
14.7 共享的对象
14.8 内存分配
  14.8.1 sbrk函数
  14.8.2 brk函数
14.9 setjmp和longjmp函数
  14.9.1 自动变量、寄存器变量和易变的变量
  14.9.2 _setjmp和_longjmp函数
  14.9.3 使用自动变量时的常见错误
14.10 资源限制
14.11 小结
练习
第15章 进程控制
15.1 引言
15.2 进程标识符
  15.2.1 getpid函数
  15.2.2 getppid函数
15.3 fork和forkl函数
  15.3.1 通过fork的文件共享
15.4 vfork函数
15.5 exit和_exit函数
15.6 wait函数
15.7 waitpid函数
15.8 wait3和wait4函数
15.9 waitid函数
15.10 竞争条件
15.11 exec函数
  15.11.1 execl函数
  15.11.2 execv函数
  15.11.3 execle函数
  15.11.4 execve函数
  15.11.5 execlp函数
  15.11.6 execvp函数
  15.11.7 exec函数的总结
15.12 解释程序文件
15.13 system函数
15.14 进程记帐
15.15 小结
练习
第16章 进程关系
16.1 引言
16.2 终端登录
16.3 网络登录
16.4 进程组
  16.4.1 创建或连接进程组
16.5 会话
  16.5.1 创建新的会话
16.6 控制终端
16.7 tcgetpgrp和tcsetpgrp函数
16.8 tcgetsid函数
16.9 作业控制
16.10 程序的外壳执行
16.11 孤立的进程组
16.12 小结
练习
第17章 信号
17.1 引言
17.2 信号概念
17.3 signal函数
17.3.1 进程启动
17.4 不可靠的信号
17.5 可靠的信号
17.6 sigset函数
17.7 pause函数
17.8 sighold、sigrelse、sigignore和sigpause函数
17.9 中断的系统调用
17.10 可重入函数
17.11 比较SIGCHLD和SIGCLD信号
17.12 kill、killpg、raise、sigsend和sigsendset函数
17.12.1 kill函数
17.12.2 killpg函数
17.12.3 raise函数
17.12.4 sigsend和sigsendset函数
17.13 alarm函数
17.14 间隔计时器
17.15 POSIX信号
17.16 信号集
17.17 sigprocmask函数
17.18 sigpending函数
17.19 sigaction函数
17.20 sigfpe函数
17.21 sigsetjmp和siglongjmp函数
17.22 sigsuspend函数
17.23 sigwait函数
17.24 abort函数
17.25再谈system函数
17.26 重新审视sleep函数
12.27 作业控制信号
17.28 软件信号
17.29 备选信号栈
17.30 系统信号消息
17.31 sig2str和str2sig函数
17.32 小结
练习
第18章 守护进程
18.1  简介
18.2 守护程序的特性
18.3  错误日志
18.4  STREAMS log驱动器
18.5  syslog工具
18.6  成为守护程序
18.7仅启动守护程序的一个副本
18.8 结语
练习
第五部分  进程间通信
第19章 使用管道和FIFO的进程间通信
19.1 简介
19.2管道
19.3 popen和pclose函数
19.4 协作进程
19.5 FIFO
19.6 迭代服务器VS并行服务器
19.7 小结
练习
第20章  System V进程间的通信工具
20.1 简介
20.2 System V IPC的概念
20.3 System V消息队列
20.4 System V 信号量集
20.5 System V 共享内存
20.6 性能比较
20.7 小结
练习
第21章 高级进程间通信
21.1 引言
21.2 传递文件描述符
21.3 打开的服务器(版本1)
21.4 客户服务器连接函数
21.5 打开的服务器(版本2)
练习
第22章 门
22.1 引言
22.2 基本门函数
22.3 门信息函数
22.4 门高级功能
22.5 门客户或服务器的提前终止
22.6 小结
第23章 伪终端
23.1 引言
23.2 概述
23.3 打开伪终端设备
23.4 pty_fork函数
23.5 pty程序
23.6 使用pty程序
23.7 高级特征
23.8 小结
练习
附录A 国际化和本地化基本知识
附录B  BSD源代码兼容性包
附录C 函数小结
附录D 其他源代码
附录E 部分练习题答案

本目录推荐