1. 首页
  2. 操作系统
  3. Linux
  4. linux系统编程(中文版)

linux系统编程(中文版)

上传者: 2019-09-23 14:31:06上传 PDF文件 2.06MB 热度 45次
第一章 简介和主要概念 1.1 系统编程 1.1.1 系统调用 1.1.2 调用系统调用 1.1.3 C库 1.1.4 C编译器 1.2 API和ABI 1.2.1 API 1.2.2 ABI 1.3 标准 1.3.1 POSIX和SUS的历史 1.3.2 C语言标准 1.3.3 Linux和标准 1.3.4 本书和标准 1.4 Linux编程概念 1.4.1 文件和文件系统 1.4.2 普通文件 1.4.3 目录和链接 1.4.4 硬链接......第0章译者序译者序《 Linux Systcm Porgramming》(简称LSP)的中文翻译工作是浮图开放实验室和哈尔滨工业大学计算机学院IBM俱乐部《深入理解计算机系统》讨论班的练习项目。参与翻译工作的同学包括从本科二年级到研究生二年级的十位同学。他们是林晓鑫、王澍、崔玉春、吉飞飞、何春晓、熊飞、李志、张祖羽、张智、陈盛、张永辉。附录的翻译由SMS(@ilacbbs.com完成,参考文献部分的翻译由王澍完成。刘文懋、王耀、刘徳超、于墨、王新喜等同学参与了审校工作。全书的初稿审校由吴晋完成。本书基于哈尔滨工业人学硕士博士论文TX模板制作,全书的模板修正工作由李志完成。本书的翻译工作基丁LSP第版完成,并根据英文版勘误进行了修正。在本书内部审核版本发布后得到了原IRM俱乐鄣成员谢煜波(现供职于微软亚洲工程院)和戴晓光(现供职于SUN中国有限公司)的大力支持,他们利用宝贵的业余时间对部分章节进行了仔细的审校,并提出了大量细致的修改意见。他们的修改意见使所有参与翻译的同学受益良多。在此向他们表示感谢。在翻译过程中还得到了紫丁香社区和 Harbin Linux User Group网友的大力支持,在此向他们一并表示感谢。由于译者在系统编程方面并没有丰富的经验,整个翻译工作以学习为的,因此书中的错误和疏漏在所难免。如果书中存在任何问题,请川如下方式和我们联系wchsite:http:/www.footoo.orgTwitter:http:/twittcr.com/cliffwooEmail: cliffwoo(agnail. com或者 cliffwood(a, footoo orgGoogleGroups:http://groups.googlecom/group/ispcn/吴晋于哈尔滨工业大学209年4月30日第0章版权声明版权声明《 Linux System Programming》中文版的翻译工作为哈尔滨工业大学计算机学院IBM俱乐部的练习项目。译文仅供系统编程的学习和交流使用,严禁用于商业用途。《 Linux System Programming》的版权归作者及原出版社所有,译文仅供系统编程的学习和交流使用。未经原书作者及出版社允许的出版、发行、制作所引发的纠纷,由当事人负责,特此声明。-I一目录目录译者序音看垂·D音垂·看垂垂版权声明第1章简介和主要概念······;··.:·····::·····1.1系统编程.1.1.1系统调用1.2调用系统调用3C库1.1.4C编译器12API和ABⅠI·垂·4垂41.2.1API.42.2ABI.,,,1.3标准.3.1POSX和SUS的历史1.3.2C语言标准.33 Linux和标准134本书和标准1.4 Linux编程概念1.4.1文件和文件系统1.4.2普通文件14.3日录和链接1.44硬链接14.5符号链接8889012214.6特殊文件14.7文件系统和名字空间垂音看面垂指1314.8进程1414.9线程1.4.10进程体系1.4.11用户和组14.12权限171.4.13信号1.4.14进程间通讯1.4.15头文件1914.16借误处理191.5开始系统编程,,,22目录第2章文件I/O232.1打开文件.2421. I opend系统调用,,,,,,,242.1.2新文件所有者26213新文件权限26214 creat函数282.1.5返回值和错误码2922用 reado读取文件2922.1返回值30222读入所有的字节31223非阻塞读.3222.4其他错误码22.5 reado大小限制323用 write来写.34231部分写352.32追加模式36233非阻塞写362.34其他错误码36235 write0人小限制.236 write的行为.鲁372.4同步IO.酯垂看鲁着垂2.4.1 fsyncO Fu fdatasynco824.2返回值和错误码392.4.3 syncO.40244 O SYNC标志..····:··:41245 O DSYNO和 O RSYNO412.5直接IO422.6关闭文件2.6.1错误码4327用 Seeks0查找.442.7.1文件末尾之后进行查找2.7.2错误码462.7.3限制.4628定位读写·鲁着;·428.1错误码4729截短文件.472.10I/O多路复用..492.10.1 selecto..502.10.2返回值和错误码2.10.3pol572.104polO)与 select(61目录2l内核内幕2.1.1虚拟文件系统622.1.2页缓存.·D垂香·,垂看垂垂2.113页回写2.12结论鲁D垂65第3章缓冲输入输出.663.1用户一缓冲IO∴,663.1.1块大小.673.1.2标准O683.1.3文件指针3.2打开文件,3.2.1模式.693.2.2通过文件描述符打丌文件3.3关闭流713.3.1关闭所有的流.7134从流中读取数据7134.1单字节读取71342把字符回放入流中343按行的读取344读取任意字符串7334.5读取二进制文件43.5向流中写数据35.1对齐的讨论,753.52写入单个字符.3.53写入字符串763.54写入二进制数据773.5.5缓冲IO示例程序着.·垂3.6定位流3.6.1获得当前流位置803.7清洗一个流..8138错误和文件结束823.9获得关联的文件描述符·······。;a·;·····;····,3.10控制缓冲833.1线程安全853.11.1手动文件加锁853.1.2不加锁流操作··..··.863.12对标准IO的批评873.13结论春看88ⅤII目录第4章高级文件I/O894.1散布/聚集IO.894.1.1 readv( Fll writevO....,......4.2 Event po接口9642.1创建一个新的epol实例42.2控制 epoll9742.3等待Epol事件,9942.4边沿触发事件和水平触发事件.10l4.3存储映射,1014.3.1 mmap·1024.3.2 unmap···:····:,,106433存储映射例子10643.4mmap(的优点43.5 mmap的缺陷10943.6调整映射的大小10943.7改变映射区域的权限11043.8使用映射机制同步文件.1114.39映射提示44晋通文件ⅠO提示.1144.4.1 posix fadviseo11444.2 readahead系统调用..,,11644.3“绎济实用“的操作提小.45同步( Synchronized),同步( Synchronous)及异步( Asynchronous)操作.11745.1异步1O46IO调度器和IO性能1204.6.1磁盘寻址,∴.,120462调度器的功能..121463改进读请求1224.6.4选择和配置你的IO调度器.12546.5优化IO性能254.7结论132第5章进程管理.·.垂;4·鲁南垂·非,,,,,,1335.1进程ID1335.1.1分配进程ID1345.12进程体系1341.3 pid5.1.4获得进程I和父进程的ⅠD1355.2运行新进程13652.1exec系列系统调用∴13652,2fork(系统调用139ⅤII目录53终止进程14353.1其他终止进程的方式.1445.3.2 atexit145on ex.14653. 4 SIGCHLD14654等待终止的了进程.14754.1等待特定进程.150542其他等待子进程的方法········.···:·152543BSD中的wait30和wait4()544创建并等待一个新进程54.5僵死进程.15855用户和组,,l585.51实际用户(组)D、有效用户(组)D和保存设置的用户(组)D159552改变实际用户(组)D和保存设置的用户(组)D..1605.53改变有效用户和组ID161554BSD改变用户ID和组ID的方式161555HPUⅩ中改变用户ID和组ID的方式1625.56操作用户ID组ID的首选方法..16355.7对保存设置的用户ID的攴持∴,,163558获取川户ID和组I.16356会话和进程组,16456.1与会话相关的系统调用16556.2与进程组相关的系统调用.1675.63废介的进程组喲数.,16857守护进程1695.8总结171第6章高级进程管理..1726.1进程调度1726.1.1大O记法..1736.1.2时间片1736.1.3IO约束进程Ⅴs.处理器约束进程1746.1.4抢占调度1756.1.5线程17562让出处理器7662.1合理使用∴,176622让出处理器方法的过去和现状,17763进程优先级.6.3.1nice(.,,1796.3.2 getpriorityO FA setpriorityO∴,180633IO优先级181IX目录6.4处理器亲和度6.4.1 schcd-gctaffinityO Nll sched sctaffinityO.18365实时系统.185651软硬实时系统.1866.52延时,抖动和截止期限,,,1866.53 Linux的实时支持1876.54Liux调度策略和优先级.1886.55设置调度参数1925.6 sched_rr-get_intervalo6.5.7于实时进程的一些提醒..1976.58确定性.,·,4垂.,1976.6资源限制2006.6.1限制列表,2016.6.2获取和设置资源限制.204第7章文件与目录管理2077.1文件及其元数据.2077.1.1组stat函数2077.1.2权限71.3所有权..2137.14扩展属性·······21572目录..,22372.1当前工作目录2247.22创建目录22972.3移除目录23072.4读取目录内容2317.3链接2357.3.1硬链接...2367.3.2符号链接2377.3.3解除链接23974复制和移动文件,2407.4.1复制.240742移动:··:···;··∴,,24l7.5设备节点.2427.5.1特殊设备节点.2437.52随机数生成器....2437.6带外通信.·24477监视文件事件2467.7.1初始化 inotify.247772监视.247
下载地址
用户评论