UNIX系统编程:基于SVR4

UNIX系统编程:基于SVR4
作 者: David Curry 孙伟峰 孙伟峰
出版社: 中国电力出版社
丛编项: 系统网络管理丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: UNIX
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《UNIX系统编程:基于SVR4》作者简介

内容简介

功能完备的程序都要用到操作系统服务。即使是最简单的程序也要读取输入,生成输出,实际应用中程序的需求就更复杂了。包括检测日期和时间,使用网络,启动进程并与之通信。所谓“系统编程”,实际上就是指使用这些操作系统服务来编写程序。本书是经典Unix编程图书。详细讲述了Unix与应用程序相互作用的技术细节。包含了许多实例,涉及的主题从字符串处理到网络编程。你可以以此为起点,通过编程实践,更上一层楼。本书虽然主要针对AT&T SVR4版本,但也专门照顾到了其他三种最重要的Unix实现:Sun Solaris、HP-UX和SGI IRIX。还包括从BSD Unix向SVR4移植程序的注意事项。本书讲述的主题包括:● 使用低层I/O子例程和标准I/O库● 创建和删除目录,改变文件属性,处理多个输入流,文件和记录上锁,以及内存映像文件。● 读取、输出和设置系统时间和日期● 如何获取当前的登录用户、如何获取用户的登录和注销时间,以及如何修改程序的有效用户ID和组ID,如何写set-user-id程序● 修改各种系统限制配置参数● 创建进程、作业控制和信号处理● 使用管道、FIFO、Unix域套接字、消息队列、信号量以及共享内存进行进程间通信● 读取和设置串行线的各种属性,例如波特率、字符回显和流控制● 使用Berkeley套接字和TLI进行网络编程

图书目录

作者简介

David A. Curry目前是IBM公司Internet紧急反应服务部门(IBM-ERS)的高级Internet安全分析师,负责该部门的安全脆弱性警告服务,以及开发此服务的质量管理程序。他拥有普度大学的计算机科学学士学位。

David自1985年开始Unix系统编程。他曾任NASA Ames研究中心的助理研究员,以及加州SRI国际公司的高级系统程序员。1991年婚后,他决定定居中西部,于是返回了普度大学,成为该大学工程计算机网的Unix系统编程组负责人,直至1995年。

David是USENIX协会和美国国家计算机安全协会的会员。还是IBM-ERS在紧急反应和安全小组论坛(FIRST)的代表。他写过许多在网上广为流传的程序,还是另两本书《Using C on the Unix System》(O’Reilly)和《Unix System Security》(Addison-Wesley)的作者。

封面介绍

本书封面上的动物是狮子,一种大型的食肉猫科动物,主要栖息在西印度和撒哈拉以南。狮子是猫科动物中最喜群居的,一个狮群通常由1到4只雄狮,和30只左右的雌狮和幼狮组成。每个狮群又分成几组。狮群的领土从15到150平方英里不等,以食物的多少而定,其边界用气味划分。

狮子以鲜肉和腐肉为食。它们更喜欢吃较大的猎物,比如斑马和羚羊。捕猎主要由雌狮承担,它们会互相协作,包抄较大的猎物。捕猎时,狮子会在阴暗处或植物丛中小心地移动,但风向的改变会经常使它们暴露。

目录

前言 1

第一章 SVR4导论 13

与标准兼容 14

编译器 16

BSD 源码兼容包 19

第二章 实用子例程 22

字符串操作 22

内存块操作函数 42

操作字符类 46

动态内存分配 49

操作临时文件 54

分析命令行参数 57

其他函数 62

本章小结 65

第三章 低层I/O子例程 66

文件描述符 66

打开和关闭文件 67

输入和输出 70

重置读写偏移量 74

复制文件描述符 77

本章小结 78

第四章 标准I/O库 79

数据类型和常量 81

打开和关闭文件 81

基于字符的输入输出 83

基于行的输入输出 86

基于缓冲区的输入输出 88

格式化输入和输出 90

重置输入/输出的偏移量 102

重新分配文件指针 106

缓冲 106

stream的状态 108

文件指针和文件描述符 109

本章小结 109

第五章 文件和目录 110

文件系统基本概念 110

UNIX 文件系统 111

获得文件属性 118

修改文件的属性 129

创建和删除文件及目录 135

与目录相关的特殊操作 137

本章小结 144

第六章 文件的特殊操作 145

文件描述符的属性 145

管理多个文件描述符 149

文件和记录上锁 160

内存映像文件 165

文件系统/dev/fd 172

其他函数 173

本章小结 176

第七章 日期时间操作 177

复杂的时间 177

获得当前的时间 179

获得本地时区 180

在UNIX时间格式和日常时间格式之间相互转换 182

格式化数据串 183

本章小结 190

第八章 用户和组 191

登录名 191

用户的ID号 193

组ID 195

口令文件 196

映像口令(shadow password)文件 199

组文件 202

文件utmp和wtmp 208

文件Lastlog 217

文件shells 220

编写set-user-id和set-group-id程序 221

本章小结 224

第九章 系统配置和资源限制 225

基本的系统信息 226

系统资源限制 230

进程的资源限制 236

资源利用信息 238

本章小结 241

第十章 信号 242

信号的基本概念 243

基本的信号处理 249

不可靠的信号 253

可靠的信号 255

信号和系统调用 260

使用信号进行“定时”处理 261

高级信号处理 270

将伯克利的信号处理函数移植到SVR4 283

本章小结 286

第十一章 进程 287

进程的基本概念 288

终止进程 294

执行一个程序 295

和进程相关的高级函数调用 298

输入输出重定向 314

作业控制 321

统计进程的执行时间 322

移植注意 323

本章小结 325

第十二章 终端 326

终端I/O的基本概念 327

和终端相关的函数 333

POSIX的终端控制 335

POSIX之前的终端控制 347

终端窗口的大小 354

本章小结 355

第十三章 进程间通信 356

管道 356

FIFO 366

UNIX的套接字 369

系统V的IPC 函数 377

本章小结 391

第十四章 使用套接字进行网络编程 392

网络的基本概念 393

创建一个套接字 399

服务器端的函数 400

客户端的函数 402

示例程序 405

其他函数 410

本章小结 415

第十五章 使用TLI进行网络编程 417

结构体netbuf 418

网络选择 419

主机名-主机地址转换 424

TLI工具函数 427

传输终端点管理 429

无连接的服务 434

面向连接的服务 440

其他函数 454

在TLI中进行读写 457

本章小结 458

第十六章 其他子例程 460

当发生错误时退出 460

错误日志 461

搜索 466

排序 481

环境变量 483

口令 484

随机数 486

目录树 486

数据库管理 492

模式匹配 495

国际化 502

本章小结 507

附录一 ANSI C对C的改进 509

附录二 访问文件系统的数据结构 521

附录三 文件系统/proc 550

附录四 伪终端 562

附录五 在链路层访问网络 574