标签分类
当前位置:首页 > 操作系统电子书 > UNIX电子书网盘下载
UNIX环境高级编程 UNIX环境高级编程
chensenym

chensenym 提供上传

资源
12
粉丝
8
喜欢
132
评论
16

    UNIX环境高级编程 PDF 中文第3版

    UNIX电子书
    • 发布时间:

    给大家带来的一篇关于UNIX相关的电子书资源,介绍了关于UNIX、高级编程方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小44.2 MB,W.Richard Stevens编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.9,更多相关的学习资源可以参阅 操作系统电子书、等栏目。

  • UNIX环境高级编程 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1QvdzBw7VRuO00Kj2bZSFSQ
  • 分享码:dfn5
  • UNIX环境高级编程 PDF

    20很多年来,认真细致的C程序猿全是借助一本好书来深层次掌握驱动器UNIX和Linux核心的编程插口的好用专业知识的,这这书就是说W.RichardStevens著作的《UNIX高级环境编程》。如今,Stevens的朋友SteveRago完全升级了这部经典书籍。新的第3版适用现如今领跑的系统软件服务平台,体现了*技术性进度和*实践活动,而且合乎*的SingleUNIXSpecification第4版(SUSv4)。
    Rago保存了使这书前版变成经典作品的精粹和方式 。他在Stevens原著小说的基本上,从基本的文档、文件目录和系统进程说起,并给诸如此类信号分析和终端设备I/O这类的优秀技术性保存很大的篇数。他还深层次探讨了进程和多线程编程、应用套接字插口驱动器进程间通信(IPC)等层面的內容。

    这版本包含了70好几个*版POSIX.1规范的增加插口,包含POSIX异步I/O、转动锁、天然屏障(barrier)和POSIX信号量。除此之外,这版本删掉了很多落伍的插口,保存了某些普遍应用的插口。书中基本上全部案例都早已在现阶段*流行的4个服务平台上检测过,包含Solaris10、MacOSX10.6.8(Darwin10.8.0)、FressBSD8.0、Ubuntu12.04(应用场景Linux3.2核心)。

    与前两版相同,用户仍能够根据案例学习培训,这种案例包含了1万多行可免费下载的ISOC源码,书中根据简要但详细的程序流程论述了400好几个系统调用和函数,清晰地表明他们的使用方法、主要参数和返回值。以便使用户能融汇贯通,书中还出示了好多个围绕整章的实例,每一实例都依据如今的技术性环境开展了全方位升级。

    这书协助了几代程序猿写成强劲、性能、靠谱的编码。第3版依据现如今流行系统软件开展升级,具有实际意义。

    《UNIX环境高级编程(第3版)》是被称作UNIX编程“圣经”的AdvancedProgrammingintheUNIXEnvironment一书的第3版。在这书第2版出版发行后的8半年度,UNIX产生了极大的转变,非常是危害UNIX编程插口的相关规范发生变化。《UNIX环境高级编程(第3版)》在维持前版本设计风格的基本上,依据*的规范对內容开展了修定和增选,体现了*的技术性发展趋势。书中除开详细介绍UNIX文档和文件目录、规范I/O库、系统软件数据文件和信息内容、系统进程环境、系统进程操纵、系统进程关联、数据信号、进程、进程操纵、守护进程、各种各样I/O、进程间通信、互联网IPC、伪终端设备等层面的內容,还要这个基础上详细介绍了诸多运用案例,包含怎样创建数据库函数库及其怎样与网络打印机通讯等。除此之外,还要附则中得出了涵数原形和一部分练习题的参考答案。

    《UNIX环境高级编程(第3版)》內容权威性,定义清楚,论述句句戳心,针对全部层级UNIX/Linux程序猿全是1本必不可少的教材。

    目录

    • 第1章 UNIX基础知识
    • 1.1 引言
    • 1.2 UNIX体系结构
    • 1.3 登录
    • 1.4 文件和目录
    • 1.5 输入和输出
    • 1.6 程序和进程
    • 1.7 出错处理
    • 1.8 用户标识
    • 1.9 信号
    • 1.10 时间值
    • 1.11 系统调用和库函数
    • 1.12 小结
    • 习题
    • 第2章 UNIX标准及实现
    • 2.1 引言
    • 2.2 UNIX标准化
    • 2.2.1 ISO C
    • 2.2.2 IEEE POSIX
    • 2.2.3 Single UNIX Specification
    • 2.2.4 FIPS
    • 2.3 UNIX系统实现
    • 2.3.1 SVR4
    • 2.3.2 4.4BSD
    • 2.3.3 FreeBSD
    • 2.3.4 Linux
    • 2.3.5 Mac OS X
    • 2.3.6 Solaris
    • 2.3.7 其他UNIX系统
    • 2.4 标准和实现的关系
    • 2.5 限制
    • 2.5.1 ISO C限制
    • 2.5.2 POSIX限制
    • 2.5.3 XSI限制
    • 2.5.4 函数sysconf、pathconf和fpathconf
    • 2.5.5 不确定的运行时限制
    • 2.6 选项
    • 2.7 功能测试宏
    • 2.8 基本系统数据类型
    • 2.9 标准之间的冲突
    • 2.10 小结
    • 第3章 文件I/O
    • 3.1 引言
    • 3.2 文件描述符
    • 3.3 函数open和openat
    • 3.4 函数creat
    • 3.5 函数close
    • 3.6 函数lseek
    • 3.7 函数read
    • 3.8 函数write
    • 3.9 I/O的效率
    • 3.10 文件共享
    • 3.11 原子操作
    • 3.12 函数dup和dup2
    • 3.13 函数sync、fsync和fdatasync
    • 3.14 函数fcntl
    • 3.15 函数ioctl
    • 3.16 /dev/fd
    • 3.17 小结
    • 第4章 文件和目录
    • 4.1 引言
    • 4.2 函数stat、fstat、fstatat和lstat
    • 4.3 文件类型
    • 4.4 设置用户ID和设置组ID
    • 4.5 文件访问权限
    • 4.6 新文件和目录的所有权
    • 4.7 函数access和faccessat
    • 4.8 函数umask
    • 4.9 函数chmod、fchmod和fchmodat
    • 4.10 粘着位
    • 4.11 函数chown、fchown、fchownat和lchown
    • 4.12 文件长度
    • 4.13 文件截断
    • 4.14 文件系统
    • 4.15 函数link、linkat、unlink、unlinkat和remove
    • 4.16 函数rename和renameat
    • 4.17 符号链接
    • 4.18 创建和读取符号链接
    • 4.19 文件的时间
    • 4.20 函数futimens、utimensat和utimes
    • 4.21 函数mkdir、mkdirat和rmdir
    • 4.22 读目录
    • 4.23 函数chdir、fchdir和getcwd
    • 4.24 设备特殊文件
    • 4.25 文件访问权限位小结
    • 4.26 小结
    • 第5章 标准I/O库
    • 5.1 引言
    • 5.2 流和FILE对象
    • 5.3 标准输入、标准输出和标准错误
    • 5.4 缓冲
    • 5.5 打开流
    • 5.6 读和写流
    • 5.7 每次一行I/O
    • 5.8 标准I/O的效率
    • 5.9 二进制I/O
    • 5.10 定位流
    • 5.11 格式化I/O
    • 5.12 实现细节
    • 5.13 临时文件
    • 5.14 内存流
    • 5.15 标准I/O的替代软件
    • 5.16 小结
    • 第6章 系统数据文件和信息
    • 6.1 引言
    • 6.2 口令文件
    • 6.3 阴影口令
    • 6.4 组文件
    • 6.5 附属组ID
    • 6.6 实现区别
    • 6.7 其他数据文件
    • 6.8 登录账户记录
    • 6.9 系统标识
    • 6.10 时间和日期例程
    • 6.11 小结
    • 第7章 进程环境
    • 7.1 引言
    • 7.2 main函数
    • 7.3 进程终止
    • 7.4 命令行参数
    • 7.5 环境表
    • 7.6 C程序的存储空间布局
    • 7.7 共享库
    • 7.8 存储空间分配
    • 7.9 环境变量
    • 7.10 函数setjmp和longjmp
    • 7.11 函数getrlimit和setrlimit
    • 7.12 小结
    • 第8章 进程控制
    • 8.1 引言
    • 8.2 进程标识
    • 8.3 函数fork
    • 8.4 函数vfork
    • 8.5 函数exit
    • 8.6 函数wait和waitpid
    • 8.7 函数waitid
    • 8.8 函数wait3和wait4
    • 8.9 竞争条件
    • 8.10 函数exec
    • 8.11 更改用户ID和更改组ID
    • 8.12 解释器文件
    • 8.13 函数system
    • 8.14 进程会计
    • 8.15 用户标识
    • 8.16 进程调度
    • 8.17 进程时间
    • 8.18 小结
    • 第9章 进程关系
    • 9.1 引言
    • 9.2 终端登录
    • 9.3 网络登录
    • 9.4 进程组
    • 9.5 会话
    • 9.6 控制终端
    • 9.7 函数tcgetpgrp、tcsetpgrp和tcgetsid
    • 9.8 作业控制
    • 9.9 shell执行程序
    • 9.10 孤儿进程组
    • 9.11 FreeBSD实现
    • 9.12 小结
    • 第10章 信号
    • 10.1 引言
    • 10.2 信号概念
    • 10.3 函数signal
    • 10.4 不可靠的信号
    • 10.5 中断的系统调用
    • 10.6 可重入函数
    • 10.7 SIGCLD语义
    • 10.8 可靠信号术语和语义
    • 10.9 函数kill和raise
    • 10.10 函数alarm和pause
    • 10.11 信号集
    • 10.12 函数sigprocmask
    • 10.13 函数sigpending
    • 10.14 函数sigaction
    • 10.15 函数sigsetjmp和siglongjmp
    • 10.16 函数sigsuspend
    • 10.17 函数abort
    • 10.18 函数system
    • 10.19 函数sleep、nanosleep和clock_nanosleep
    • 10.20 函数sigqueue
    • 10.21 作业控制信号
    • 10.22 信号名和编号
    • 10.23 小结
    • 第11章 线程
    • 11.1 引言
    • 11.2 线程概念
    • 11.3 线程标识
    • 11.4 线程创建
    • 11.5 线程终止
    • 11.6 线程同步
    • 11.6.1 互斥量
    • 11.6.2 避免死锁
    • 11.6.3 函数pthread_mutex_timedlock
    • 11.6.4 读写锁
    • 11.6.5 带有超时的读写锁
    • 11.6.6 条件变量
    • 11.6.7 自旋锁
    • 11.6.8 屏障
    • 11.7 小结
    • 第12章 线程控制
    • 12.1 引言
    • 12.2 线程限制
    • 12.3 线程属性
    • 12.4 同步属性
    • 12.4.1 互斥量属性
    • 12.4.2 读写锁属性
    • 12.4.3 条件变量属性
    • 12.4.4 屏障属性
    • 12.5 重入
    • 12.6 线程特定数据
    • 12.7 取消选项
    • 12.8 线程和信号
    • 12.9 线程和fork
    • 12.10 线程和I/O
    • 12.11 小结
    • 第13章 守护进程
    • 13.1 引言
    • 13.2 守护进程的特征
    • 13.3 编程规则
    • 13.4 出错记录
    • 13.5 单实例守护进程
    • 13.6 守护进程的惯例
    • 13.7 客户进程-服务器进程模型
    • 13.8 小结
    • 第14章 高级I/O
    • 14.1 引言
    • 14.2 非阻塞I/O
    • 14.3 记录锁
    • 14.4 I/O多路转接
    • 14.4.1 函数select和pselect
    • 14.4.2 函数poll
    • 14.5 异步I/O
    • 14.5.1 System V异步I/O
    • 14.5.2 BSD异步I/O
    • 14.5.3 POSIX异步I/O
    • 14.6 函数readv和writev
    • 14.7 函数readn和writen
    • 14.8 存储映射I/O
    • 14.9 小结
    • 第15章 进程间通信
    • 15.1 引言
    • 15.2 管道
    • 15.3 函数popen和pclose
    • 15.4 协同进程
    • 15.5 FIFO
    • 15.6 XSI IPC
    • 15.6.1 标识符和键
    • 15.6.2 权限结构
    • 15.6.3 结构限制
    • 15.6.4 优点和缺点
    • 15.7 消息队列
    • 15.8 信号量
    • 15.9 共享存储
    • 15.10 POSIX信号量
    • 15.11 客户进程-服务器进程属性
    • 15.12 小结
    • 第16章 网络IPC:套接字
    • 16.1 引言
    • 16.2 套接字描述符
    • 16.3 寻址
    • 16.3.1 字节序
    • 16.3.2 地址格式
    • 16.3.3 地址查询
    • 16.3.4 将套接字与地址关联
    • 16.4 建立连接
    • 16.5 数据传输
    • 16.6 套接字选项
    • 16.7 带外数据
    • 16.8 非阻塞和异步I/O
    • 16.9 小结
    • 第17章 高级进程间通信
    • 17.1 引言
    • 17.2 UNIX域套接字
    • 17.3 唯一连接
    • 17.4 传送文件描述符
    • 17.5 open服务器进程第1版
    • 17.6 open服务器进程第2版
    • 17.7 小结
    • 第18章 终端I/O
    • 18.1 引言
    • 18.2 综述
    • 18.3 特殊输入字符
    • 18.4 获得和设置终端属性
    • 18.5 终端选项标志
    • 18.6 stty命令
    • 18.7 波特率函数
    • 18.8 行控制函数
    • 18.9 终端标识
    • 18.10 规范模式
    • 18.11 非规范模式
    • 18.12 终端窗口大小
    • 18.13 termcap、terminfo和curses
    • 18.14 小结
    • 第19章 伪终端
    • 19.1 引言
    • 19.2 概述
    • 19.3 打开伪终端设备
    • 19.4 函数pty_fork
    • 19.5 pty程序
    • 19.6 使用pty程序
    • 19.7 高级特性
    • 19.8 小结
    • 第20章 数据库函数库
    • 20.1 引言
    • 20.2 历史
    • 20.3 函数库
    • 20.4 实现概述
    • 20.5 集中式或非集中式
    • 20.6 并发
    • 20.7 构造函数库
    • 20.8 源代码
    • 20.9 性能
    • 20.10 小结
    • 第21章 与网络打印机通信
    • 21.1 引言
    • 21.2 网络打印协议
    • 21.3 超文本传输协议HTTP
    • 21.4 打印假脱机技术
    • 21.5 源代码
    • 21.6 小结
    • 附录A 函数原型
    • 附录B 其他源代码
    • 附录C 部分习题答案
    • 参考书目
    • 索引

    上一篇:深入理解linux内核  下一篇:Linux系统编程

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    UNIX相关电子书
    学习笔记
    网友NO.984179

    在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程

    我是一位新的 Vim 编辑器用户。我通常使用 : vs ~/.vimrc 来加载 ~/.vimrc 配置。而当我编辑 .vimrc 时,我需要不重启 Vim 会话而重新加载它。在 Linux 或者类 Unix 系统中,如何在编辑 .vimrc 后,重新加载它而不用重启 Vim 呢? Vim 是自由开源并且向上兼容 Vi 的编辑器。它可以用来编辑各种文本。它在编辑用 C/Perl/Python 编写的程序时特别有用。可以用它来编辑 Linux/Unix 配置文件。 ~/.vimrc 是你个人的 Vim 初始化和自定义文件。 如何在不重启 Vim 会话的情况下重新加载 .vimrc 在 Vim 中重新加载 .vimrc 而不重新启动的流程: 输入 vim filename 启动 vim 按下 Esc 接着输入 :vs ~/.vimrc 来加载 vim 配置 像这样添加自定义配置: filetype indent plugin on set number syntax on 4. 使用 `:wq` 保存文件,并从 `~/.vimrc` 窗口退出 5. 输入下面任一命令重载 `~/.vimrc`:`:so $MYVIMRC` 或者 `:source ~/.vimrc`。 [![How to reload .vimrc file without restarting vim][1]][1] *图1:编辑 ~/.vimrc 并在需要时重载它而不用退出 vim,这样你就可以继续编辑程序了* `:so[urce]! {file}` 这个 vim 命令会从给定的文件比如 `~/.vimrc` 读取配置。就像你输入的一样,这些命令是在普通模式下执行的。当你在 `:global`、:`argdo`、 `:windo`、`:bufdo` 之后、循环中或者跟着另一个命令时,显示不会再在执行命令时更新。 ### 如何设置按键来……

    网友NO.148422

    Java时间转换成unix时间戳的方法

    java进行时间转换成unix timestamp的具体代码,供大家参考,具体内容如下 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author kongqz kongqingzhu@gmail.com * @version 创建时间:2013-2-19 上午10:21:47 */ public class TestUnixTime { public static void main(String[] args) throws ParseException{ DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //1361325960 long epoch = df.parse("2013-02-20 10:06:00").getTime(); System.out.println("should be 1361325960 :"+epoch); Date d=new Date(); String t=df.format(d); epoch=df.parse(t).getTime()/1000; System.out.println("t is :"+t+",unix stamp is "+epoch); } } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。 ……

    网友NO.652529

    Java与Unix时间戳的相互转换详解

    Java将Unix时间戳转换成指定格式日期,供大家参考,具体内容如下 当从服务器获取数据的时候,有时候获取的数据中的时间在很多的情况下是时间戳类似于这样1473048265,当然,我们不可能将这些数据以时间戳的形式展示给用户,通常情况,是要对这个时间戳进行一系列的处理加工,使其变成我们想要并习惯浏览的那种格式,那么怎么处理这些时间戳格式的数据呢?每个语言和框架都有自己的方法和方式。 下面将以java的方法来实现,废话少说直接撸码…… 方法实现 /** * Java将Unix时间戳转换成指定格式日期字符串 * @param timestampString 时间戳 如:"1473048265"; * @param formats 要格式化的格式 默认:"yyyy-MM-dd HH:mm:ss"; * * @return 返回结果 如:"2016-09-05 16:06:42"; */ public static String TimeStamp2Date(String timestampString, String formats) { if (TextUtils.isEmpty(formats)) formats = "yyyy-MM-dd HH:mm:ss"; Long timestamp = Long.parseLong(timestampString) * 1000; String date = new SimpleDateFormat(formats, Locale.CHINA).format(new Date(timestamp)); return date; } 调用方法 TimeStamp2Date("1473048265", "yyyy-MM-dd HH:mm:ss"); 返回结果 2016-09-05 16:06:42 将Java指定格式日期转换成Unix时间戳 /** * 日期格式字符串转换成时间戳 * * @param dateStr 字符串日期 * @param format 如:yyyy-MM-dd HH:mm:ss * * @return */ public static String Date2TimeStamp(String dateSt……

    网友NO.100027

    mysql中索引与FROM_UNIXTIME的问题

    零、背景 这周四收到很多告警,找DBA看了看,发现有个慢查询。 简单收集一些信息后,发现这个慢查询问题隐藏的很深,问了好多人包括DBA都不知道原因。 一、问题 有一个DB, 有一个字段, 定义如下. MySQL [d_union_stat] desc t_local_cache_log_meta;+----------------+--------------+------+-----+---------------------+| Field | Type | Null | Key | Default |+----------------+--------------+------+-----+---------------------+| c_id | int(11) | NO | PRI | NULL || c_key | varchar(128) | NO | MUL | || c_time | int(11) | NO | MUL | 0 || c_mtime | varchar(45) | NO | MUL | 0000-00-00 00:00:00 |+----------------+--------------+------+-----+---------------------+17 rows in set (0.01 sec) 索引如下: MySQL [d_union_stat] show index from t_local_cache_log_meta \G *************************** 1. row *************************** Table: t_local_cache_log_meta Non_unique: 0 Key_name: PRIMARY Column_name: c_id Collation: A Cardinality: 6517096 Index_type: BTREE*************************** 2. row ***************************...*************************** 6. row *************************** Table: t_local_cache_log_meta Non_unique: 1 Key_name: index_mtime Column_name: c_mtime Collation: A Cardinality: 592463 Index_type: BTREE6 rows in set (0.02 sec) 然后我写了一个SQL如下: SELECT count(*)FROM d_union_stat.t_local_cache_log_metawhere `c_mtime` FROM_UNIXTIME(1494485402); 终于有一天DBA过来了, 扔给我一个流水,说这个……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明