成功加入购物车

去购物车结算 X
书逅图书专营店
  • Linux系统编程(第2版)

Linux系统编程(第2版)

举报

全新正版现货开发票请留言

  • 出版时间: 
  • 装帧:    平装
  • 开本:    16开
  • ISBN:  9787115346353
  • 出版时间: 
  • 装帧:  平装
  • 开本:  16开

售价 71.20 7.1折

定价 ¥99.80 

品相 全新

优惠 满包邮

优惠 满减券
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2023-06-07

    数量
    库存11
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    • 商品详情
    • 店铺评价
    手机购买
    微信扫码访问
    • 货号:
      1202611419
      商品描述:
      作者简介
      Robert Love在很早期就一直使用Linux并贡献代码,包括对Linux内核和GNOME桌面环境的贡献。Robert Love是Google软件工程师,是Android设计和开发团队成员。目前,他致力于Google的Web搜索架构。Robert获得了Florida大学的双学位:计算机科学理学学士和数学文学学士。

      目录
      目  录

      第 1章  入门和基本概念  1
      1.1  系统编程  1
      1.1.1  为什么要学习系统编程  2
      1.1.2  系统编程的基础  2
      1.1.3  系统调用  3
      1.1.4  C库  3
      1.1.5  C编译器  4
      1.2  API和ABI  4
      1.2.1  API  5
      1.2.2  ABI  5
      1.3  标准  6
      1.3.1  POSIX和SUS的历史  6
      1.3.2  C语言标准  7
      1.3.3  Linux和标准  8
      1.3.4  本书和标准  8
      1.4  Linux编程的概念  9
      1.4.1  文件和文件系统  9
      1.4.2  进程  15
      1.4.3  用户和组  16
      1.4.4  权限  17
      1.4.5  信号  18
      1.4.6  进程间通信  19
      1.4.7  头文件  19
      1.4.8  错误处理  19

      第 2章  文件I/O  23
      2.1  打开文件  24
      2.1.1  系统调用open()  24
      2.1.2  新建文件的所有者  27
      2.1.3  新建文件的权限  27
      2.1.4  creat()函数  30
      2.1.5  返回值和错误码  30
      2.2  通过read()读文件  31
      2.2.1  返回值  31
      2.2.2  读入所有字节  33
      2.2.3  非阻塞读  33
      2.2.4  其他错误码  34
      2.2.5  read()调用的大小  34
      2.3  调用write()写  35
      2.3.1  部分写(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.1  fsync()和fdatasync()  39
      2.4.2  sync()  41
      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.1  在文件末尾后查找  46
      2.7.2  错误码  46
      2.7.3    47
      2.8  定位读写  47
      2.9  文件截短  48
      2.10  I/O多路复用  49
      2.10.1  select()  50
      2.10.2  poll()  56
      2.10.3  poll()和select()的区别  60
      2.11  内核内幕  61
      2.11.1  虚拟文件系统  61
      2.11.2  页缓存  62
      2.11.3  页回写  63
      2.12  结束语  64

      第3章  缓冲I/O  65
      3.1  用户缓冲I/O  65
      3.2  标准I/O  68
      3.3  打开文件  69
      3.4  通过文件描述符打开流  70
      3.5  关闭流  71
      3.6  从流中读数据  71
      3.6.1  每次读取一个字节  71
      3.6.2  每次读一行  72
      3.6.3  读二进制文件  74
      3.7  向流中写数据  75
      3.7.1  写入单个字符  75
      3.7.2  写入字符串  76
      3.7.3  写入二进制数据  76
      3.8  缓冲I/O示例程序  77
      3.9  定位流  78
      3.10  Flush(刷新输出)流  80
      3.11  错误和文件结束  80
      3.12  获取关联的文件描述符  81
      3.13  控制缓冲  82
      3.14  线程安全  83
      3.14.1  手动文件加锁  84
      3.14.2  对流操作解锁  85
      3.15  对标准I/O的批评  86
      3.16  结束语  87

      第4章  高 级文件I/O  88
      4.1  分散/聚集I/O  89
      4.2  Event Poll  94
      4.2.1  创建新的epoll实例  94
      4.2.2  控制epoll  95
      4.2.3  等待epoll事件  98
      4.2.4  边缘触发事件和条件触发事件  100
      4.3  存储映射  101
      4.3.1  mmap()  101
      4.3.2  munmap()  105
      4.3.3  存储映射实例  106
      4.3.4  mmap()的优点  107
      4.3.5  mmap()的不足  108
      4.3.6  调整映射的大小  108
      4.3.7  改变映射区域的权限  109
      4.3.8  通过映射同步文件  110
      4.3.9  给出映射提示  112
      4.4  普通文件I/O提示  114
      4.4.1  系统调用posix_fadvise()  114
      4.4.2  readahead()系统调用  115
      4.4.3  “经济实用”的操作提示  116
      4.5  同步(Synchronized),同步(Synchronous)及异步(Asynchronous)操作  117
      4.6  I/O调度器和I/O性能  118
      4.6.1  磁盘寻址  119
      4.6.2  I/O调度器的功能  120
      4.6.3  改进读请求  120
      4.6.4  选择和配置你的I/O调度器  123
      4.6.5  优化I/O性能  124
      4.7  结束语  130

      第5章  进程管理  131
      5.1  程序、进程和线程  131
      5.2  进程ID  132
      5.2.1  分配进程ID  132
      5.2.2  进程体系  133
      5.2.3  pid_t  133
      5.2.4  获取进程ID和父进程ID  133
      5.3  运行新进程  134
      5.3.1  exec系统调用  134
      5.3.2  fork()系统调用  138
      5.4  终止进程  141
      5.4.1  终止进程的其他方式  142
      5.4.2  atexit()  143
      5.4.3  on_exit()  144
      5.4.4  SIGCHLD  144
      5.5  等待子进程终止  144
      5.5.1  等待特定进程  147
      5.5.2  等待子进程的其他方法  149
      5.5.3  BSD中的wait3()和wait4()  151
      5.5.4  创建并等待新进程  152
      5.5.5  僵尸进程  155
      5.6  用户和组  155
      5.6.1  改变实际用户/组ID和保留的用户/组ID  156
      5.6.2  改变有效的用户ID或组ID  157
      5.6.3  BSD改变用户ID和组ID的方式  158
      5.6.4  HP-UX中改变用户ID和组ID的方式  158
      5.6.5  操作用户ID/组ID的首 选方法  159
      5.6.6  对保留的用户ID的支持  159
      5.6.7  获取用户ID和组ID  159
      5.7  会话(Session)和进程组  160
      5.7.1  与会话相关的系统调用  161
      5.7.2  与进程组相关的系统调用  163
      5.7.3  废弃的进程组函数  164
      5.8  守护进程  164
      5.9  结束语  167

      第6章  高 级进程管理  168
      6.1  进程调度  168
      6.1.1  时间片  169
      6.1.2  I/O约束型进程和处理器约束型进程  169
      6.1.3  抢占式调度  170
      6.2  接近公平调度器  171
      6.3  让出处理器  172
      6.4  进程优先级  173
      6.4.1  nice()  174
      6.4.2  getpriority()和setpriority()  175
      6.4.3  I/O优先级  176
      6.5  处理器亲和力(Affinity)  177
      6.6  实时系统  180
      6.6.1  硬实时系统和软实时系统  180
      6.6.2  延迟、抖动和截止期限  181
      6.6.3  Linux的实时支持  182
      6.6.4  Linux调度策略和优先级  182
      6.6.5  设置调度参数  186
      6.6.6  sched_rr_get_interval()  189
      6.6.7  关于实时进程的注意事项  190
      6.6.8  确定性  191
      6.7  资源  193
      6.7.1  项  194
      6.7.2  获取和设置资源  198

      第7章  线程  200
      7.1  二进制程序、进程和线程  200
      7.2  多线程  201
      7.2.1  多线程代价  203
      7.2.2  其他选择  203
      7.3  线程模型  203
      7.3.1  用户级线程模型  204
      7.3.2  混合式线程模型  204
      7.3.3  协同程序  205
      7.4  线程模式  205
      7.4.1  每个连接对应一个线程  206
      7.4.2  事件驱动的线程模式  206
      7.5  并发性、并行性和竞争  207
      7.6  同步  210
      7.6.1  互斥  211
      7.6.2  死锁  212
      7.7  Pthreads  214
      7.7.1  Linux线程实现  214
      7.7.2  Pthread API  215
      7.7.3  链接Pthreads  216
      7.7.4  创建线程  216
      7.7.5  线程ID  217
      7.7.6  终止线程  218
      7.7.7  join(加入)线程和detach(分离)线程  221
      7.7.8  线程编码实例  223
      7.7.9  Pthread互斥  224
      7.8  进一步研究  227

      第8章  文件和目录管理  228
      8.1  文件及其元数据  228
      8.1.1  一组stat函数  229
      8.1.2  权限  233
      8.1.3  所有权  234
      8.1.4  扩展属性  237
      8.1.5  扩展属性操作  239
      8.2  目录  245
      8.2.1  获取当前工作目录  246
      8.2.2  创建目录  251
      8.2.3  删除目录  252
      8.2.4  读取目录内容  253
      8.3  链接  256
      8.3.1  硬链接  256
      8.3.2  符号链接  258
      8.3.3  解除链接  259
      8.4  拷贝和移动文件  261
      8.4.1  拷贝  261
      8.4.2  移动  261
      8.5  设备节点  263
      8.5.1  特殊设备节点  264
      8.5.2  随机数生成器  264
      8.6  带外通信(Out-of-Band Communication)  265
      8.7  监视文件事件  266
      8.7.1  初始化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.1  进程地址空间  276
      9.1.1  页和页面调度  276
      9.1.2  内存区域  278
      9.2  动态内存分配  279
      9.2.1  数组分配  281
      9.2.2  调整已分配内存大小  282
      9.2.3  释放动态内存  283
      9.2.4  对齐  285
      9.3  数据段的管理  289
      9.4  匿名内存映射  290
      9.4.1  创建匿名内存映射

      配送说明

      ...

      相似商品

      为你推荐

    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看