返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • [正版]Linux系统编程(第2版)
  • 本店所有图书均支持7天无理由退换并运费险,请放心购买。
    • 作者: 拉姆著
    • 出版社: 人民邮电出版社
    • 出版时间:2014-05
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    粉象优品图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 拉姆著
    • 出版社:人民邮电出版社
    • 出版时间:2014-05
    • ISBN:9786490571288
    • 版权提供:人民邮电出版社

                                                                                                  店铺公告

    本店存在书、古旧书、收藏书、二手书等特殊商品,因受采购成本限制,可能高于定价销售,明码标价,介意者勿拍!

    1.书籍因稀缺可能导致售价高于定价,图书实际定价参见下方详情内基本信息,请买家看清楚且明确后再拍,避免价格争议!

    2.店铺无纸质均开具电子,请联系客服开具电子版


    内容介绍

      系统编程是指编写系统软件,其代码在底层运行,直接跟内核和核心系统库对话。   《Linux系统编程(第 2版)》是*本关于Linux系统编程的教程,也是*本介绍Linux系统编程的手册,还是*本如何实现更*雅更快代码的内幕指南。*书分为**章和2个附录,详细介绍了Linux系统编程基本概念、文件I/O、缓冲I/O、* 级文件I/O、进程管理、* 级进程管理、线程、文件和目录管理、信号和时间等主题。附录给出了gcc和GNU C提供的很多语言扩展,以及推荐阅读的相关书目。   《Linux系统编程(第 2版)》的作者是Linux内核*业人士,多本技术图书的作者。《Linux系统编程(第 2版)》需要在C编程和Linux编程环境下工作的程序员阅读,对于想要巩固基础或了解内核的* 级编程人员,《Linux系统编程(第 2版)》也很有参考*值。
    目录

    目 录

    第 *章 入门和基本概念 *
    *.* 系统编程 *
    *.*.* 为什么要学习系统编程 2
    *.*.2 系统编程的基础 2
    *.*.3 系统调用 3
    *.*.4 C库 3
    *.*.5 C编译器 4
    *.2 API和ABI 4
    *.2.* API 5
    *.2.2 ABI 5
    *.3 标准 6
    *.3.* POSIX和SUS的历史 6
    *.3.2 C语言标准 7
    *.3.3 Linux和标准 8
    *.3.4 本书和标准 8
    *.4 Linux编程的概念 9
    *.4.* 文件和文件系统 9
    *.4.2 进程 *5
    *.4.3 用户和组 *6
    *.4.4 权限 *7
    *.4.5 信号 *8
    *.4.6 进程间通信 *9
    *.4.7 头文件 *9
    *.4.8 错误处理 *9

    第 2章 文件I/O 23
    2.* 打开文件 24
    2.*.* 系统调用open() 24
    2.*.2 新建文件的所有者 27
    2.*.3 新建文件的权限 27
    2.*.4 creat()函数 30
    2.*.5 返回值和错误码 30
    2.2 通过read()读文件 3*
    2.2.* 返回值 3*
    2.2.2 读入所有字节 33
    2.2.3 非阻塞读 33
    2.2.4 其他错误码 34
    2.2.5 read()调用的大小限制 34
    2.3 调用write()写 35
    2.3.* *分写(Partial Write) 36
    2.3.2 Append(追加)模式 36
    2.3.3 非阻塞写 37
    2.3.4 其他错误码 37
    2.3.5 write()大小限制 38
    2.3.6 write()行为 38
    2.4 同步I/O 39
    2.4.* fsync()和fdatasync() 39
    2.4.2 sync() 4*
    2.4.3 O_SYNC标志位 42
    2.4.4 O_DSYNC和O_RSYNC 42
    2.5 直接I/O 43
    2.6 关闭文件 43
    2.7 用lseek()查找 44
    2.7.* 在文件末尾后查找 46
    2.7.2 错误码 46
    2.7.3 限制 47
    2.8 定位读写 47
    2.9 文件截短 48
    2.*0 I/O多路复用 49
    2.*0.* select() 50
    2.*0.2 poll() 56
    2.*0.3 poll()和select()的区别 60
    2.** 内核内幕 6*
    2.**.* 虚拟文件系统 6*
    2.**.2 页缓存 62
    2.**.3 页回写 63
    2.*2 结束语 64

    第3章 缓冲I/O 65
    3.* 用户缓冲I/O 65
    3.2 标准I/O 68
    3.3 打开文件 69
    3.4 通过文件描述符打开流 70
    3.5 关闭流 7*
    3.6 从流中读数据 7*
    3.6.* 每次读取*个字节 7*
    3.6.2 每次读*行 72
    3.6.3 读二进制文件 74
    3.7 向流中写数据 75
    3.7.* 写入单个字符 75
    3.7.2 写入字符串 76
    3.7.3 写入二进制数据 76
    3.8 缓冲I/O示例程序 77
    3.9 定位流 78
    3.*0 Flush(刷新输出)流 80
    3.** 错误和文件结束 80
    3.*2 获取关联的文件描述符 8*
    3.*3 控制缓冲 82
    3.*4 线程* 83
    3.*4.* 手动文件加锁 84
    3.*4.2 对流操作解锁 85
    3.*5 对标准I/O的批评 86
    3.*6 结束语 87

    第4章 * 级文件I/O 88
    4.* 分散/聚集I/O 89
    4.2 Event Poll 94
    4.2.* *建新的epoll实例 94
    4.2.2 控制epoll 95
    4.2.3 等待epoll事件 98
    4.2.4 边缘触发事件和条件触发事件 *00
    4.3 存储映射 *0*
    4.3.* mmap() *0*
    4.3.2 munmap() *05
    4.3.3 存储映射实例 *06
    4.3.4 mmap()的*点 *07
    4.3.5 mmap()的*足 *08
    4.3.6 调整映射的大小 *08
    4.3.7 改变映射区域的权限 *09
    4.3.8 通过映射同步文件 **0
    4.3.9 给出映射提示 **2
    4.4 普通文件I/O提示 **4
    4.4.* 系统调用posix_fadvise() **4
    4.4.2 readahead()系统调用 **5
    4.4.3 “经济实用”的操作提示 **6
    4.5 同步(Synchronized),同步(Synchronous)及异步(Asynchronous)操作 **7
    4.6 I/O调度器和I/O性能 **8
    4.6.* 磁盘寻址 **9
    4.6.2 I/O调度器的功能 *20
    4.6.3 改进读请求 *20
    4.6.4 选择和配置你的I/O调度器 *23
    4.6.5 *化I/O性能 *24
    4.7 结束语 *30

    第5章 进程管理 *3*
    5.* 程序、进程和线程 *3*
    5.2 进程ID *32
    5.2.* 分配进程ID *32
    5.2.2 进程体系 *33
    5.2.3 pid_t *33
    5.2.4 获取进程ID和父进程ID *33
    5.3 运行新进程 *34
    5.3.* exec系统调用 *34
    5.3.2 fork()系统调用 *38
    5.4 *止进程 *4*
    5.4.* *止进程的其他方式 *42
    5.4.2 atexit() *43
    5.4.3 on_exit() *44
    5.4.4 SIGCHLD *44
    5.5 等待子进程*止 *44
    5.5.* 等待*定进程 *47
    5.5.2 等待子进程的其他方法 *49
    5.5.3 BSD中的wait3()和wait4() *5*
    5.5.4 *建并等待新进程 *52
    5.5.5 僵尸进程 *55
    5.6 用户和组 *55
    5.6.* 改变实际用户/组ID和*留的用户/组ID *56
    5.6.2 改变有效的用户ID或组ID *57
    5.6.3 BSD改变用户ID和组ID的方式 *58
    5.6.4 HP-UX中改变用户ID和组ID的方式 *58
    5.6.5 操作用户ID/组ID的* 选方法 *59
    5.6.6 对*留的用户ID的支持 *59
    5.6.7 获取用户ID和组ID *59
    5.7 会话(Session)和进程组 *60
    5.7.* 与会话相关的系统调用 *6*
    5.7.2 与进程组相关的系统调用 *63
    5.7.3 废弃的进程组函数 *64
    5.8 守护进程 *64
    5.9 结束语 *67

    第6章 * 级进程管理 *68
    6.* 进程调度 *68
    6.*.* 时间片 *69
    6.*.2 I/O约束型进程和处理器约束型进程 *69
    6.*.3 *占式调度 *70
    6.2 完*公平调度器 *7*
    6.3 让出处理器 *72
    6.4 进程*先级 *73
    6.4.* nice() *74
    6.4.2 getpriority()和setpriority() *75
    6.4.3 I/O*先级 *76
    6.5 处理器*和力(Affinity) *77
    6.6 实时系统 *80
    6.6.* 硬实时系统和软实时系统 *80
    6.6.2 延迟、抖动和截止期限 *8*
    6.6.3 Linux的实时支持 *82
    6.6.4 Linux调度策略和*先级 *82
    6.6.5 设置调度参数 *86
    6.6.6 sched_rr_get_interval() *89
    6.6.7 关于实时进程的注意事项 *90
    6.6.8 确定性 *9*
    6.7 资源限制 *93
    6.7.* 限制项 *94
    6.7.2 获取和设置资源限制 *98

    第7章 线程 200
    7.* 二进制程序、进程和线程 200
    7.2 多线程 20*
    7.2.* 多线程代* 203
    7.2.2 其他选择 203
    7.3 线程模型 203
    7.3.* 用户级线程模型 204
    7.3.2 混合式线程模型 204
    7.3.3 协同程序 205
    7.4 线程模式 205
    7.4.* 每个连接对应*个线程 206
    7.4.2 事件驱动的线程模式 206
    7.5 并发性、并行性和竞争 207
    7.6 同步 2*0
    7.6.* 互斥 2**
    7.6.2 死锁 2*2
    7.7 Pthreads 2*4
    7.7.* Linux线程实现 2*4
    7.7.2 Pthread API 2*5
    7.7.3 *Pthreads 2*6
    7.7.4 *建线程 2*6
    7.7.5 线程ID 2*7
    7.7.6 *止线程 2*8
    7.7.7 join(加入)线程和detach(分离)线程 22*
    7.7.8 线程编码实例 223
    7.7.9 Pthread互斥 224
    7.8 进*步研究 227

    第8章 文件和目录管理 228
    8.* 文件及其元数据 228
    8.*.* *组stat函数 229
    8.*.2 权限 233
    8.*.3 所有权 234
    8.*.4 扩展属性 237
    8.*.5 扩展属性操作 239
    8.2 目录 245
    8.2.* 获取当前工作目录 246
    8.2.2 *建目录 25*
    8.2.3 删除目录 252
    8.2.4 读取目录内容 253
    8.3 * 256
    8.3.* 硬* 256
    8.3.2 符号* 258
    8.3.3 解除* 259
    8.4 拷贝和移动文件 26*
    8.4.* 拷贝 26*
    8.4.2 移动 26*
    8.5 设备节点 263
    8.5.* *殊设备节点 264
    8.5.2 随机数生成器 264
    8.6 带外通信(Out-of-Band Communication) 265
    8.7 监视文件事件 266
    8.7.* 初始化inotify 267
    8.7.2 监视 268
    8.7.3 inotify事件 270
    8.7.4 * 级监视选项 273
    8.7.5 删除inotify监视 273
    8.7.6 获取事件队列大小 274
    8.7.7 销毁inotify实例 274

    第9章 内存管理 276
    9.* 进程地址空间 276
    9.*.* 页和页面调度 276
    9.*.2 内存区域 278
    9.2 动态内存分配 279
    9.2.* 数组分配 28*
    9.2.2 调整已分配内存大小 282
    9.2.3 释放动态内存 283
    9.2.4 对齐 285
    9.3 数据段的管理 289
    9.4 匿名内存映射 290
    9.4.* *建匿名内存映射 29*
    9.4.2 映射到设备文件/dev/zero 293
    9.5 * 级内存分配 294
    9.5.* 调试内存分配 297
    9.5.2 获取统计信息 297
    9.6 基于栈的分配 298
    9.6.* 把字符串复制到栈中 300
    9.6.2 变长数组 30*
    9.7 选择合适的内存分配机制 302
    9.8 内存操作 303
    9.8.* 字节设置 303
    9.8.2 字节比较 304
    9.8.3 字节移动 305
    9.8.4 字节查找 306
    9.8.5 字节加密 306
    9.9 内存锁定 307
    9.9.* 锁定*分地址空间 307
    9.9.2 锁定**地址空间 308
    9.9.3 内存解锁 309
    9.9.4 锁的限制 3*0
    9.9.5 该页在物理内存中吗 3*0
    9.*0 投机性内存分配策略 3**

    第 *0章 信号 3*3
    *0.* 信号相关的概念 3*3
    *0.*.* 信号标识符 3*4
    *0.*.2 Linux支持的信号 3*5
    *0.2 基本信号管理 320
    *0.2.* 等待信号 32*
    *0.2.2 示例 322
    *0.2.3 执行和继承 324
    *0.2.4 把信号编号映射为字符串 325
    *0.3 发送信号 326
    *0.3.* 权限 326
    *0.3.2 示例 327
    *0.3.3 给进程本身发送信号 327
    *0.3.4 给整个进程组发送信号 327
    *0.4 重入 328
    *0.5 信号集 330
    *0.5.* 更多的信号集函数 33*
    *0.5.2 获取待处理信号 332
    *0.5.3 等待信号集 333
    *0.6 * 级信号管理 333
    *0.6.* 结构体siginfo_t 336
    *0.6.2 si_code的相关说明 338
    *0.6.3 发送带附加信息(payload)的信号 342
    *0.6.4 示例 343
    *0.7 信号是个UNIX“瑕疵”吗 343

    第 **章 时间 345
    **.* 时间的数据结构 347
    **.*.* 原始表示 348
    **.*.2 微秒级*度 348
    **.*.3 更* 确的:纳秒级*度 348
    **.*.4 对时间进行分解 349
    **.*.5 进程时间类型 350
    **.2 POSIX时钟 35*
    **.3 时间源*度 35*
    **.4 取得当前时间 353
    **.4.* 更好的接口 353
    **.4.2 * 级接口 354
    **.4.3 获取进程时间 355
    **.5 设置当前时间 356
    **.5.* 设置支持**度的时间 356
    **.5.2 设置时间的* 级接口 357
    **.6 玩转时间 358
    **.7 睡眠和等待 363
    **.7.* 以微秒级*度睡眠 363
    **.7.2 以纳秒级*度睡眠 365
    **.7.3 实现睡眠的* 级方法 366
    **.7.4 sleep的可移植实现 368
    **.7.5 *时(Overrun) 368
    **.7.6 睡眠的其他方式 369
    **.8 定时器 369
    **.8.* 简单的闹钟 369
    **.8.2 计时器(interval timer) 370
    **.8.3 * 级定时器 372

    附录A C语言的GCC扩展 378
    附录B 参考书目 390
    作者介绍

    Robert Love在很早期**直使用Linux并贡献代码,*括对Linux内核和GNOME桌面环境的贡献。Robert Love是Google软件工程师,是Android设计和开发团队成员。目前,他*力于Google的Web搜索架构。Robert获得了Florida大学的双学位:计算机科学理学学士和数学文学学士。
    媒体评论

    本书详细阐述了如何编写与Linux内核以及核心系统库提供的服务直接相关的软件。在这本书中,Linux内核贡献者Robert Love*面阐述了Linux系统编程,指导如何进行Linux系统调用,并从*家角度分析如何编写更*雅、运行更快的代码。 本书作者对POSIX标准函数和Linux提供的*些*定服务非常了解。本书第2版新增了*章*门介绍多线程,这是对第*版的更新和扩展,同时本书从理论和应用角度深入分析Linux,涉及的编程主题很广,*括以下*彩内容: Linux内核、C库和C编译器概览; 基础I/O操作,如文件读写; *级I/O接口、内存映射以及*化技术; 关于基本过程管理的系统调用; *级进程管理,*括实时进程; 线程概念,多线程编程和Pthreads; 文件和目录管理; 内存分配和*化内存访问相关的接口; 基本的和*级的信号接口,及其在系统中的作用; 时钟管理,*括POSIX时钟和**度计时器。
    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购