Chinaunix

标题: 【实时更新】2009.07.31传说中最好的linux c入门教材---Linux C编程一站式学习.pdf [打印本页]

作者: see_3000    时间: 2009-04-27 15:44
标题: 【实时更新】2009.07.31传说中最好的linux c入门教材---Linux C编程一站式学习.pdf
==========================================
更新记录:
2009.9.3日更新版本为Linux C变成一站式学习2009.7.31.pdf
2009.6.25日更新版本为Linux C编程一站式学习2009.6.23.pdf
2009.6.15日更新版本为Linux C编程一站式学习2009.6.14.pdf
2009.5.25日更新版本为Linux C编程一站式学习2009.5.21.pdf
2009.5. 5更新版本为2009.5.4版本。
Linux C编程一站式学习2009.4.24.pdf
=====================================================================================================================

   迄今为止,感觉最好的一本linux C教程,感觉很好,特做成pdf带完整书签版本,并实时更新,希望对大家有帮助,并且更改会免积分的设置,希望大家能支持我啊,呵呵!!
很好的教程,希望对大家学习有所帮助
========================================================================================================

添加了GFDL许可证,正式网络发布。第三部分还很粗糙,错误也有不少,有待改进。第一部分和第二部分已经比较成熟,第二部分还差三章没写。

作者源电子书发布网站链接
http://learn.akae.cn/media/index.html
Linux C编程一站式学习打包下载    docbook源码下载宋劲杉北京亚嵌教育研究中心


2009.7.31

[tr]修订历史[/tr]
修订 0.62009.2.27
添加了GFDL许可证,正式网络发布。第三部分还很粗糙,错误也有不少,有待改进。第一部分和第二部分已经比较成熟,第二部分还差三章没写。
修订 0.72009.4.24
全书的章节基本完成,但有些章节还很不完善。




目录

历史
前言
I. C语言入门

    1. 程序的基本概念

        1. 程序和编程语言
        2. 自然语言和形式语言
        3. 程序的调试
        4. 第一个程序

    2. 常量、变量和表达式

        1. 继续Hello World
        2. 常量
        3. 变量
        4. 赋值
        5. 表达式
        6. 字符类型与字符编码

    3. 简单函数

        1. 数学函数
        2. 自定义函数
        3. 形参和实参
        4. 全局变量、局部变量和作用域

    4. 分支语句

        1. if语句
        2. if/else语句
        3. 布尔代数
        4. switch语句

    5. 深入理解函数

        1. return语句
        2. 增量式开发
        3. 递归

    6. 循环语句

        1. while语句
        2. do/while语句
        3. for语句
        4. break和continue语句
        5. 嵌套循环
        6. goto语句和标号

    7. 结构体

        1. 复合类型与结构体
        2. 数据抽象
        3. 数据类型标志
        4. 嵌套结构体

    8. 数组

        1. 数组的基本概念
        2. 数组应用实例:统计随机数
        3. 数组应用实例:直方图
        4. 字符串
        5. 多维数组

    9. 编码风格

        1. 缩进和空白
        2. 注释
        3. 标识符命名
        4. 函数
        5. indent工具

    10. gdb

        1. 单步执行和跟踪函数调用
        2. 断点
        3. 观察点
        4. 段错误

    11. 排序与查找

        1. 算法的概念
        2. 插入排序
        3. 算法的时间复杂度分析
        4. 归并排序
        5. 线性查找
        6. 折半查找

    12. 栈与队列

        1. 数据结构的概念
        2. 堆栈
        3. 深度优先搜索
        4. 队列与广度优先搜索
        5. 环形队列

    13. 本阶段总结

II. C语言本质

    14. 计算机中数的表示

        1. 为什么计算机用二进制计数
        2. 不同进制之间的换算
        3. 整数的加减运算

            3.1. Sign and Magnitude表示法
            3.2. 1's Complement表示法
            3.3. 2's Complement表示法
            3.4. 有符号数和无符号数

        4. 浮点数

    15. 数据类型详解

        1. 整型
        2. 浮点型
        3. 类型转换

            3.1. Integer Promotion
            3.2. Usual Arithmetic Conversion
            3.3. 由赋值产生的类型转换
            3.4. 强制类型转换
            3.5. 编译器如何处理类型转换

    16. 运算符详解

        1. 位运算

            1.1. 按位与、或、异或、取反运算
            1.2. 移位运算
            1.3. 掩码
            1.4. 异或运算的一些特性

        2. 其它运算符

            2.1. 复合赋值运算符
            2.2. 条件运算符
            2.3. 逗号运算符
            2.4. sizeof运算符与typedef类型声明

        3. Side Effect与Sequence Point
        4. 运算符总结

    17. 计算机体系结构基础

        1. 内存与地址
        2. CPU
        3. 设备
        4. MMU
        5. Memory Hierarchy

    18. x86汇编程序基础

        1. 最简单的汇编程序
        2. x86的寄存器
        3. 第二个汇编程序
        4. 寻址方式
        5. ELF文件

            5.1. 目标文件
            5.2. 可执行文件

    19. 汇编与C之间的关系

        1. 函数调用
        2. main函数和启动例程
        3. 变量的存储布局
        4. 结构体和联合体
        5. C内联汇编
        6. volatile限定符

    20. 链接详解

        1. 多目标文件的链接
        2. 定义和声明

            2.1. extern和static关键字
            2.2. 头文件
            2.3. 定义和声明的详细规则

        3. 静态库
        4. 共享库

            4.1. 编译、链接、运行
            4.2. 动态链接的过程
            4.3. 共享库的命名惯例

        5. 虚拟内存管理

    21. 预处理

        1. 预处理的步骤
        2. 宏定义

            2.1. 函数式宏定义
            2.2. 内联函数
            2.3. #、##运算符和可变参数
            2.4. 宏展开的步骤

        3. 条件预处理指示
        4. 其它预处理特性

    22. Makefile基础

        1. 基本规则
        2. 隐含规则和模式规则
        3. 变量
        4. 自动处理头文件的依赖关系
        5. 常用的make命令行选项

    23. 指针

        1. 指针的基本概念
        2. 指针类型的参数和返回值
        3. 指针与数组
        4. 指针与const限定符
        5. 指针与结构体
        6. 指向指针的指针与指针数组
        7. 指向数组的指针与多维数组
        8. 函数类型和函数指针类型
        9. 不完全类型和复杂声明

    24. 函数接口

        1. 本章的预备知识

            1.1. strcpy与strncpy
            1.2. malloc与free

        2. 传入参数与传出参数
        3. 两层指针的参数
        4. 返回值是指针的情况
        5. 回调函数
        6. 可变参数

    25. C标准库

        1. 字符串操作函数

            1.1. 初始化字符串
            1.2. 取字符串的长度
            1.3. 拷贝字符串
            1.4. 连接字符串
            1.5. 比较字符串
            1.6. 搜索字符串
            1.7. 分割字符串

        2. 标准I/O库函数

            2.1. 文件的基本概念
            2.2. fopen/fclose
            2.3. stdin/stdout/stderr
            2.4. errno与perror函数
            2.5. 以字节为单位的I/O函数
            2.6. 操作读写位置的函数
            2.7. 以字符串为单位的I/O函数
            2.8. 以记录为单位的I/O函数
            2.9. 格式化I/O函数
            2.10. C标准库的I/O缓冲区
            2.11. 本节综合练习

        3. 数值字符串转换函数
        4. 分配内存的函数

    26. 链表、二叉树和哈希表

        1. 链表

            1.1. 单链表
            1.2. 双向链表
            1.3. 静态链表
            1.4. 本节综合练习

        2. 二叉树

            2.1. 二叉树的基本概念
            2.2. 排序二叉树

        3. 哈希表

    27. 本阶段总结

III. Linux系统编程

    28. 文件与I/O

        1. 汇编程序的Hello world
        2. C标准I/O库函数与Unbuffered I/O函数
        3. open/close
        4. read/write
        5. lseek
        6. fcntl
        7. ioctl
        8. mmap

    29. 文件系统

        1. 引言
        2. ext2文件系统

            2.1. 总体存储布局
            2.2. 实例剖析
            2.3. 数据块寻址
            2.4. 文件和目录操作的系统函数

        3. VFS

            3.1. 内核数据结构
            3.2. dup和dup2函数

    30. 进程

        1. 引言
        2. 环境变量
        3. 进程控制

            3.1. fork函数
            3.2. exec函数
            3.3. wait和waitpid函数

        4. 进程间通信

            4.1. 管道
            4.2. 其它IPC机制

        5. 练习:实现简单的Shell

    31. Shell脚本

        1. Shell的历史
        2. Shell如何执行命令

            2.1. 执行交互式命令
            2.2. 执行脚本

        3. Shell的基本语法

            3.1. 变量
            3.2. 文件名代换(Globbing):* ? []
            3.3. 命令代换:`或 $()
            3.4. 算术代换:$(())
            3.5. 转义字符\
            3.6. 单引号
            3.7. 双引号

        4. bash启动脚本

            4.1. 作为交互登录Shell启动,或者使用--login参数启动
            4.2. 以交互非登录Shell启动
            4.3. 非交互启动
            4.4. 以sh命令启动

        5. Shell脚本语法

            5.1. 条件测试:test [
            5.2. if/then/elif/else/fi
            5.3. case/esac
            5.4. for/do/done
            5.5. while/do/done
            5.6. 位置参数和特殊变量
            5.7. 函数

        6. Shell脚本的调试方法

    32. 正则表达式

        1. 引言
        2. 基本语法
        3. sed
        4. awk
        5. 练习:在C语言中使用正则表达式

    33. 信号

        1. 信号的基本概念
        2. 产生信号

            2.1. 通过终端按键产生信号
            2.2. 调用系统函数向进程发信号
            2.3. 由软件条件产生信号

        3. 阻塞信号

            3.1. 信号在内核中的表示
            3.2. 信号集操作函数
            3.3. sigprocmask
            3.4. sigpending

        4. 捕捉信号

            4.1. 内核如何实现信号的捕捉
            4.2. sigaction
            4.3. pause
            4.4. 可重入函数
            4.5. sig_atomic_t类型与volatile限定符
            4.6. 竞态条件与sigsuspend函数
            4.7. 关于SIGCHLD信号

    34. 终端、作业控制与守护进程

        1. 终端

            1.1. 终端的基本概念
            1.2. 终端登录过程
            1.3. 网络登录过程

        2. 作业控制

            2.1. Session与进程组
            2.2. 与作业控制有关的信号

        3. 守护进程

    35. 线程

        1. 线程的概念
        2. 线程控制

            2.1. 创建线程
            2.2. 终止线程

        3. 线程间同步

            3.1. mutex
            3.2. Condition Variable
            3.3. Semaphore
            3.4. 其它线程间同步机制

        4. 编程练习

    36. TCP/IP协议基础

        1. TCP/IP协议栈与数据包封装
        2. 以太网(RFC 894)帧格式
        3. ARP数据报格式
        4. IP数据报格式
        5. IP地址与路由
        6. UDP段格式
        7. TCP协议

            7.1. 段格式
            7.2. 通讯时序
            7.3. 流量控制

    37. socket编程

        1. 预备知识

            1.1. 网络字节序
            1.2. socket地址的数据类型及相关函数

        2. 基于TCP协议的网络程序

            2.1. 最简单的TCP网络程序
            2.2. 错误处理与读写控制
            2.3. 把client改为交互式输入
            2.4. 使用fork并发处理多个client的请求
            2.5. setsockopt
            2.6. 使用select

        3. 基于UDP协议的网络程序
        4. UNIX Domain Socket IPC
        5. 练习:实现简单的Web服务器

            5.1. 基本HTTP协议
            5.2. 执行CGI程序

A. 字符编码

    1. ASCII码
    2. Unicode和UTF-8
    3. 在Linux C编程中使用Unicode和UTF-8

B. GNU Free Documentation License Version 1.3, 3 November 2008
参考书目
索引

[ 本帖最后由 see_3000 于 2009-9-3 14:43 编辑 ]

Linux C编程一站式学习2009.5.21.pdf

4.88 MB, 下载次数: 17084

Linux C编程一站式学习6.14.rar

4.39 MB, 下载次数: 4932

Linux C编程一站式学习20090623.pdf.tar.gz

4.48 MB, 下载次数: 4341

2009.6.23版本,使用宋体,tar.gz格式压缩。ubuntu下可以正常阅读

Linux C编程一站式学习2009.0731.pdf.part1.rar

4 MB, 下载次数: 9617

2009.7.31版本分卷1,使用宋体,tar.gz格式压缩。ubuntu下可以正常阅读

Linux C编程一站式学习2009.0731.pdf.part2.rar

2.3 MB, 下载次数: 7504

2009.7.31版本分卷2,使用宋体,tar.gz格式压缩。ubuntu下可以正常阅读2009.7.31版本


作者: yang_crystal    时间: 2009-04-27 15:59
标题: 回复 #1 see_3000 的帖子
不错,支持下
作者: wzcsoft    时间: 2009-04-27 18:32
很好很强大
作者: knight_123    时间: 2009-05-05 11:08
收藏了,支持、支持、支持、、、、、
作者: xinglp    时间: 2009-05-05 11:10
收藏了
作者: daybreakcx    时间: 2009-05-05 11:18
看目录内容不错,下一下看看
作者: dreamice    时间: 2009-05-05 11:18
谁写的啊,不错的书
作者: alexyandy_unix    时间: 2009-05-05 11:28
楼主加油~~
作者: gz80    时间: 2009-05-05 12:00
内容是不错,但感觉太杂了,有c语言入门,然后部分数据结构,然后部分apue,又有shell,又部分unp。一个大杂烩大火锅,呵呵。
作者: uyucn    时间: 2009-05-05 12:14
我都看完了,呵呵!  当时链表那章还没写好。
内容很不错,收获不小。
谢谢LZ啊,不用自己去整理了。
作者: langfanyun    时间: 2009-05-05 13:17
太感谢了,收藏
作者: daybreakcx    时间: 2009-05-05 13:20
大概浏览了一下,内容还不错,涉及面很广,支持一个
作者: jerichen    时间: 2009-05-05 14:08
感动、感谢、感激。。。
我正在找这方面的东西啊。
作者: dliwj    时间: 2009-05-05 17:18
谢谢分享,看看
作者: 47328983    时间: 2009-05-05 20:13
dingshangqu
作者: glasslion    时间: 2009-05-05 20:43
先收藏了
作者: aaaaa5aa    时间: 2009-05-05 22:00
前两天下载下来看了看,很强大的PDF文档
作者: netgc    时间: 2009-05-05 22:17
很强大 立即收藏
作者: doudou_linux    时间: 2009-05-05 22:27
标题: duoxie
学习学习
作者: lxsdwjf    时间: 2009-05-05 22:54
学习。。
作者: majingxiong    时间: 2009-05-06 11:04
感谢楼主,谢谢了。太好了。
作者: yun_2106118    时间: 2009-05-06 12:09
我不得不回复了,潜水那么久,都不知道如何浮起来,看到楼主的好帖,看到楼主的大公无私,我震撼了,我不得不出来,出来举起我的双手,顶
作者: SMEWL    时间: 2009-05-06 12:50
好东西!收藏、学习。。。。
作者: zlhwxm    时间: 2009-05-06 12:50
好东西~
作者: gawk    时间: 2009-05-06 13:01
看了一下目录的确很强
作者: see_3000    时间: 2009-05-06 13:44
标题: 回复 #7 dreamice 的帖子
宋劲杉
作者: coffee777    时间: 2009-05-06 17:20
收藏了,谢谢楼主
作者: iorifreedom    时间: 2009-05-06 18:11
:wink: :wink: 比现在很多所谓的浩强C强多了!
作者: novemberrain    时间: 2009-05-06 21:11
不得不感谢一下!
作者: herocsz    时间: 2009-05-06 21:22
支持,我下载了~
作者: 疑似精神病    时间: 2009-05-07 09:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: avcodec    时间: 2009-05-07 09:59
下了一份。
谢谢楼主。
作者: rollingstone    时间: 2009-05-07 09:59
多谢分享!
作者: flyingnn    时间: 2009-05-07 10:46
谢谢分享,收藏了!
作者: sikongjue    时间: 2009-05-07 13:05
下载了,先谢谢了
作者: goooole    时间: 2009-05-07 15:22
不错  大家都在都在linux下开发过大型的项目吧  能不能开源个给我们练练手
作者: vincentdpan    时间: 2009-05-07 17:23
感觉很一般
作者: ccvd    时间: 2009-05-08 18:58
标题: 拉拉
lz辛苦啦拉拉拉拉
作者: zbzoo    时间: 2009-05-09 07:54

作者: tianxiaogang12    时间: 2009-05-09 08:07
下来 浏览下
作者: sharpshootor    时间: 2009-05-09 11:57
留个脚印
作者: maomaoguai    时间: 2009-05-10 00:26
没有数据库方面呀!
作者: brodiy    时间: 2009-05-10 08:05
准备自学这个。
作者: whelysee    时间: 2009-05-10 14:50
已经收藏,阅读中~
作者: see_3000    时间: 2009-05-10 21:50
希望大家多多支持,把这个帖子顶起来
作者: wxhzyh    时间: 2009-05-10 23:27
正好需要。。谢谢楼主哈。。
作者: veking    时间: 2009-05-11 09:38
看了一遍目录,感觉不错,知识很全面,有空读读。
作者: veking    时间: 2009-05-11 11:02
多谢,已下载、收藏!
作者: ziffer    时间: 2009-05-12 08:39
赞,收藏了
作者: lushengyuan    时间: 2009-05-13 10:24
标题: 谢谢楼主共享!
强烈支持楼主的共享精神!!:wink: :wink: :wink:
作者: cmesunoom    时间: 2009-05-13 10:29
已收藏,谢楼主
作者: peter41    时间: 2009-05-13 14:01
灰常灰常强的 帖子 不顶对不起楼主啊
作者: zhaoyongjing    时间: 2009-05-13 16:23
看看
作者: lightofcentury    时间: 2009-05-15 13:36
标题: linuxc
thank you a!
作者: hoohoobjj    时间: 2009-05-15 14:48
好人
作者: zhuerduo2003    时间: 2009-05-16 14:29
好东西一定要顶,谢谢楼主!
作者: dxia    时间: 2009-05-19 15:13
感谢楼主,收藏了
作者: itnop    时间: 2009-05-20 09:14
thank you
作者: 李某人    时间: 2009-05-20 10:05
真的很不错啊~~~ 收了
作者: michael老狼    时间: 2009-05-20 10:42
静下心来,好好看看。
作者: peimichael    时间: 2009-05-20 12:49
大概浏览了一下,
感觉c语言部分写的挺深入的,
down下来认真研究一下。
ps:宋劲衫这个名字好像在哪见过。。

[ 本帖最后由 peimichael 于 2009-5-20 12:51 编辑 ]
作者: gejunxiao18    时间: 2009-05-21 16:23
支持,非常感谢!
作者: sxxzzf    时间: 2009-05-21 16:32
不错,非常感谢
作者: zjcafxl    时间: 2009-05-21 19:00
:em09: :em09: :em09: :em09: :em09: :em09: :em09:
作者: lenky0401    时间: 2009-05-21 20:54
刚下载,看完了再发表个人评论,先顶个。
作者: lsupper    时间: 2009-05-21 21:09
看了下,内容好多,还是比较全面的~~~
作者: susu1732    时间: 2009-05-22 09:35
支持。。。。。。。。。
作者: GodPig    时间: 2009-05-22 11:38
看目录不错~~~
作者: a543589796    时间: 2009-05-22 14:30
真的是本好书,看目录就知道了
作者: laonanr    时间: 2009-05-22 16:06
先存着
作者: binbin_as    时间: 2009-05-24 21:53
标题: 回复 #1 see_3000 的帖子
好书,刚学习Linux 编程,谢谢LZ
作者: liu1061    时间: 2009-05-25 13:17
这么高的点击率, 下载来看看。希望从中得到提升,感谢楼主!!
作者: see_3000    时间: 2009-05-25 13:48
更新最新版5.21版本
作者: milowind    时间: 2009-05-25 14:04
好书。谢谢搂住分享
作者: adreaman    时间: 2009-05-27 13:09
楼主是做linux嵌入式教育领域的专家。在主页上可以看到楼主。http://www.akaedu.org/
作者: honckly    时间: 2009-05-27 15:23
很好,很强大。。。
作者: hhts1987    时间: 2009-05-28 09:22
这个好啊 ,顶起来啊,呵呵,很多知识要学习
比某些版块骂街强多到哪去了
作者: lkq0211    时间: 2009-06-02 16:43
标题: 回复 #1 see_3000 的帖子
很好的资料,而且很清晰!
作者: wuyanhui328    时间: 2009-06-03 09:06
学习学习再学习!
作者: fangshi168775    时间: 2009-06-03 10:54
为啥我在ubuntu下看显示有问题,中文全都没显示
作者: youshuang    时间: 2009-06-03 14:06
好书,好书!尤其是汇编那部分!
作者: see_3000    时间: 2009-06-03 17:13
标题: 回复 #80 fangshi168775 的帖子
我现在用的也是ubuntu,因为生成pdf的时候用的是华文中宋,所以你要装字体才行
作者: ben7980    时间: 2009-06-04 09:29
very good, save it into my favorate folder
thanks.
作者: ytmygalove    时间: 2009-06-04 15:44
收下了,剛好要入門.
作者: aaaaa5aa    时间: 2009-06-04 19:38
来下载了,上次那个也下载了
作者: lixinwei1985@si    时间: 2009-06-05 11:31
这本书无敌了
作者: linuxleio    时间: 2009-06-06 10:34
不错,收下了,谢谢LZ
作者: 聪明笨小孩    时间: 2009-06-08 09:35
谢谢  学习一下
作者: yvonne_cyh    时间: 2009-06-11 11:43
标题: 回复 #1 see_3000 的帖子
文件已损坏且不能修复,谁能传我一下
作者: wzj071227    时间: 2009-06-15 11:05
谢谢  学习一下
作者: eveson    时间: 2009-06-15 13:45
支持一把aka的牛人
作者: see_3000    时间: 2009-06-16 13:50
标题: 回复 #89 yvonne_cyh 的帖子
检查了,没有损坏,可以使用,请检查你的计算机
作者: nacle    时间: 2009-06-16 16:25
收藏了。。谢谢
作者: anders0913    时间: 2009-06-18 21:04

作者: butisly    时间: 2009-06-18 21:47
版主太感谢了!找了好久了。
作者: 南无小和尚    时间: 2009-06-18 22:02
很早就在关注。学习,跟进
作者: Ray001    时间: 2009-06-18 23:23
不错啊。支持楼主
作者: zsmdev    时间: 2009-06-19 17:57
支持下,下来看看
作者: Magic_LP    时间: 2009-06-24 22:10
太漂亮了,尤其是第2章,醍醐灌顶啊,讲得很好~呵呵,不过还是有很多不明白的地方
作者: Magic_LP    时间: 2009-06-24 22:11
顺便把100楼给占了吧




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2