下载频道  >  w_dalu的资源
  • 程序员的编程修养 PDF

    程序员的编程修养 什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快? 我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对 于速度快,只要编得多也就熟能生巧了。 我认为好的程序员应该有以下几方面的素质: 1、有专研精神,勤学善问、举一反三。 2、积极向上的态度,有创造性思维。 3、与人积极交流沟通的能力,有团队精神。 4、谦虚谨慎,戒骄戒燥。 5、写出的代码质量高。包括:代码的稳定、易读、规范、易维护、专业。 01、版权和版本------------------------------------------------------- 第02 页 02、缩进、空格、换行、空行、对齐------------------------------------- 第03 页 03、程序注释--------------------------------------------------------- 第06 页 04、函数的[in][out]参数---------------------------------------------- 第06 页 05、对系统调用的返回进行判断----------------------------------------- 第07 页 06、if 语句对出错的处理---------------------------------------------- 第07 页 07、头文件中的#ifndef ------------------------------------------------ 第08 页 08、在堆上分配内存--------------------------------------------------- 第08 页 09、变量的初始化----------------------------------------------------- 第10 页 10、h 和c 文件的使用-------------------------------------------------- 第11 页 11、出错信息的处理--------------------------------------------------- 第12 页 12、常用函数和循环语句中的被计算量----------------------------------- 第14 页 13、函数名和变量名的命名--------------------------------------------- 第14 页 14、函数的传值和传指针----------------------------------------------- 第15 页 15、修改别人程序的修养----------------------------------------------- 第15 页 16、把相同或近乎相同的代码形成函数和宏------------------------------- 第16 页 17、表达式中的括号--------------------------------------------------- 第16 页 18、函数参数中的const ------------------------------------------------ 第17 页 19、函数的参数个数--------------------------------------------------- 第17 页 20、函数的返回类型,不要省略----------------------------------------- 第17 页 21、goto 语句的使用--------------------------------------------------- 第18 页 22、宏的使用--------------------------------------------------------- 第19 页 23、static 的使用----------------------------------------------------- 第19 页 24、函数中的代码尺寸------------------------------------------------- 第20 页 25、typedef 的使用---------------------------------------------------- 第20 页 26、为常量声明宏----------------------------------------------------- 第22 页 27、不要为宏定义加分号----------------------------------------------- 第22 页 28、||和&&的语句执行顺序--------------------------------------------- 第23 页 29、尽量用for 而不是while 做循环------------------------------------- 第24 页 30、请sizeof 类型而不是变量------------------------------------------ 第25 页 31、不要忽略Warning -------------------------------------------------- 第26 页 32、书写Debug 版和Release 版的程序----------------------------------- 第27 页

    2010-01-06
    3
  • Linux编程--Linux内核具体系统结构

    Linux内核具体系统结构 摘要 341 第1章 前言 342 1.1 目标 342 1.2 Linux介绍 342 1.3 软件系统结构的背景知识 342 1.4 方法与途径 343 1.5 适用本书的读者 344 1.6 本部分的章节安排 344 第2章 系统结构 345 第3章 子系统结构 346 3.1 进程调度程序 346 3.1.1 目标 346 3.1.2 外部接口 346 3.1.3 子系统描述 346 3.1.4 数据结构 347 3.1.5 子系统结构 348 3.1.6 子系统依赖性 348 3.2 内存管理程序 348 3.2.1 目标 348 3.2.2 外部接口 349 3.2.3 子系统描述 349 3.2.4 数据结构 350 3.2.5 子系统结构 350 3.2.6 子系统依赖性 351 3.3 虚拟文件系统 352 3.3.1 目标 352 3.3.2 外部接口 352 3.3.3 子系统描述 353 3.3.4 设备驱动程序 353 3.3.5 逻辑文件系统 354 3.3.6 模块 354 3.3.7 数据结构 355 3.3.8 子系统结构 355 3.3.9 子系统依赖性 355 3.4 进程间通信 355 3.4.1 目标 355 3.4.2 外部接口 357 3.4.3 子系统描述 357 3.4.4 数据结构 358 3.4.5 子系统结构 359 3.4.6 子系统依赖性 359 3.5 网络接口 360 3.5.1 目标 360 3.5.2 外部接口 361 3.5.3 子系统描述 361 3.5.4 数据结构 362 3.5.5 子系统结构 363 3.5.6 子系统依赖性 363 第4章 结论 365 附录A 术语定义 366 附录B 参考文献 368 第六部分 附 录 附录A Linux文档工程拷贝许可证 372 附录B GNU通用公共许可证 374

    2009-12-16
    3
  • Linux编程--Linux内核概念系统结构

    Linux内核概念系统结构 摘要 323 前言 324 第1章 系统结构 325 1.1 系统概述 325 1.2 内核的目标 325 1.3 内核结构的概述 325 1.4 支持多个开发人员 327 1.5 系统数据结构 328 1.5.1 任务列表 328 1.5.2 内存映射 328 1.5.3 索引节点 328 1.5.4 数据连接 329 第2章 子系统的系统结构 330 2.1 进程调度程序系统结构 330 2.1.1 目标 330 2.1.2 模块 330 2.1.3 数据表达 331 2.1.4 依赖性、数据流和控制流 331 2.2 内存管理程序系统结构 331 2.2.1 目标 331 2.2.2 模块 331 2.2.3 数据表示 331 2.2.4 数据流、控制流和依赖性 332 2.3 虚拟文件系统系统结构 333 2.3.1 目标 333 2.3.2 模块 333 2.3.3 数据表示 333 2.3.4 数据流、控制流和依赖性 334 2.4 网络接口系统结构 334 2.4.1 目标 334 2.4.2 模块 334 2.4.3 数据表示 335 2.4.4 数据流、控制流和依赖性 335 2.5 进程间通信系统结构 335 第3章 结论 336 附录A 术语定义 337 附录B 参考文献 338

    2009-12-16
    9
  • Linux编程--Linux内核模块编程指南

    Linux内核模块编程指南 致谢 前言 第1章 Hello, World 145 1.1 内核模块的Makefiles文件 146 1.2 多重文件内核模块 147 第2章 字符设备文件 149 第3章 /proc文件系统 158 第4章 把/proc用于输入 162 第5章 把设备文件用于输入 170 第6章 启动参数 182 第7章 系统调用 185 第8章 阻塞处理 190 第9章 替换printk 199 第10章 任务调度 202 第11章 中断处理程序 207 第12章 对称多处理 211 第13章 常见错误 212 附录A 2.0和2.2之间的差异 213 附录B 其他资源 214 附录C 给出你的评价 215

    2009-12-16
    5
  • Linux编程--Linux内核

    Linux内核 前言 第1章 硬件基础与软件基础 6 1.1 硬件基础 6 1.1.1 CPU 7 1.1.2 存储器 8 1.1.3 总线 8 1.1.4 控制器和外设 8 1.1.5 地址空间 9 1.1.6 时钟 9 1.2 软件基础 9 1.2.1 计算机语言 9 1.2.2 什么是操作系统 11 1.2.3 内核数据结构 13 第2章 内存管理 15 2.1 虚拟内存抽象模型 15 2.1.1 请求调页 17 2.1.2 交换 17 2.1.3 共享虚拟内存 18 2.1.4 物理寻址模式和虚拟寻址模式 18 2.1.5 访问控制 18 2.2 高速缓存 19 2.3 Linux页表 20 2.4 页分配和回收 21 2.4.1 页分配 22 2.4.2 页回收 22 2.5 内存映射 22 2.6 请求调页 23 2.7 Linux页缓存 24 2.8 页换出和淘汰 25 2.8.1 减少缓冲区和页缓存大小 25 2.8.2 换出System V共享内存页 26 2.8.3 换出和淘汰页 27 2.9 交换缓存 27 2.10 页换入 28 第3章 进程 29 3.1 Linux进程 29 3.2 标识符 31 3.3 调度 32 3.4 文件 34 3.5 虚拟内存 35 3.6 创建进程 36 3.7 时间和定时器 37 3.8 执行程序 38 3.8.1 ELF 39 3.8.2 脚本文件 40 第4章 进程间通信机制 41 4.1 信号机制 41 4.2 管道 42 4.3 套接字 44 4.3.1 System V的进程间通信机制 44 4.3.2 消息队列 44 4.3.3 信号量 45 4.3.4 共享存储区 47 第5章 PCI 49 5.1 PCI的地址空间 49 5.2 PCI配置头 50 5.3 PCI的I/O和存储地址空间 51 5.4 PCI-ISA桥 51 5.5 PCI-PCI 桥 51 5.5.1 PCI-PCI桥:PCI I/O和存储地址 空间的窗口 51 5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60 6.1 中断与中断处理 60 6.1.1 可编程中断控制器 61 6.1.2 初始化中断处理数据结构 61 6.1.3 中断处理 62 6.2 设备驱动程序 63 6.2.1 测试与中断 64 6.2.2 直接存储器访问(DMA) 65 6.2.3 存储器 66 6.2.4 设备驱动程序与内核的接口 66 6.2.5 硬盘 69 6.2.6 网络设备 74 第7章 文件系统 77 7.1 第二个扩展文件系统EXT2 78 7.1.1 EXT2系统的inode节点 79 7.1.2 EXT2系统的超级块 80 7.1.3 EXT2系统的组描述符 80 7.1.4 EXT2系统的目录 81 7.1.5 在EXT2文件系统中查找文件 81 7.1.6 在EXT2文件系统中改变文件 的大小 82 7.2 虚拟文件系统 83 7.2.1 VFS文件系统的超级块 84 7.2.2 VFS文件系统的inode节点 84 7.2.3 注册文件系统 85 7.2.4 装配文件系统 85 7.2.5 在虚拟文件系统中查找文件 87 7.2.6 卸载文件系统 87 7.2.7 VFS文件系统的inode缓存 87 7.2.8 目录缓存 88 7.3 缓冲区缓存 88 7.3.1 bdflush内核守护进程 90 7.3.2 update进程 90 7.4 /proc文件系统 91 7.5 特殊设备文件 91 第8章 网络 92 8.1 TCP/IP网络概述 92 8.2 Linux中的TCP/IP网络层次结构 95 8.3 BSD套接字接口 96 8.4 INET的套接字层 97 8.4.1 创建BSD套接字 98 8.4.2 为INET BSD Socket绑定地址 99 8.4.3 建立INET BSD Socket连接 99 8.4.4 INET BSD Socket侦听 100 8.4.5 接受连接请求 100 8.5 IP层 100 8.5.1 套接字缓冲区 100 8.5.2 接收IP报文 101 8.5.3 发送IP报文 102 8.5.4 数据分片 102 8.6 地址解析协议 103 8.7 IP路由 104 第9章 内核机制与模块 107 9.1 内核机制 107 9.1.1 Bottom Half控制 107 9.1.2 任务队列 108 9.1.3 定时器 109 9.1.4 等待队列 110 9.1.5 自旋锁 110 9.1.6 信号量 110 9.2 模块 111 9.2.1 模块载入 112 9.2.2 模块卸载 113 第10章 处理器 115 10.1 X86 115 10.2 ARM 115 10.3 Alpha AXP处理器 115 第11章 Linux内核源代码 117 11.1 怎样得到Linux内核源码 117 11.2 内核源码的编排 117 11.3 从何处看起 118 第12章 Linux数据结构 120 附录A 有用的Web和FTP站点 138 附录B 词汇表 139

    2009-12-16
    5
  • C程序算法--实例源代码教程

    大量C程序算法实例教程 目录包括如下: 背包问题 临时程序 二叉树操作 二叉树的检索 其它 单元加 图的搜索 字符 小写数字转为大写数字 底层编程 效验算法 数学问题 数据结构 数组 文件程序 最长公共子序列 求进制 汉诺塔 硬币情况 综合链表 背包问题 逆阵 链表 链表1 链表2 链表操作1 链表操作2 问题算法

    2009-12-16
    3
  • C语言编程技巧程序集

    C语言编程技巧程序集 C 语言 编程 技巧 程序 集

    2009-12-16
    3
  • Linux C 编程一站式学习 pdf

    Linux C编程一站式学习 PDF资源 不错的奥

    2009-12-16
    3
  • 数据结构与算法--C语言应用与实践 pdf

    数据结构与算法--C语言应用与实践 pdf 不错的PDF资源

    2009-12-16
    3
  • MYSQL网络数据库PDF学习资源

    解压密码:reply MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。 它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL 数据库的程序, 另外,MySQL在UNIX等操作系统上是免费的,在Windows操作系统上,可免费使用其客户机程序和客户机程序库。 本书通过两个实例,详细介绍了MySQL的基本概念、基本技巧、编程方法、管理特点,以及第三方工具(如PHP和Perl)的使用方法。 本书还提供了大量与MySQL有关的因特网站点,以及获得MySQL的技术支持方法。 本书适合数据库、网络开发与管理等人员参考。 目 录 译者序 序 前言 第一部分 MySQL的使用 第1章 MySQL 与 SQL 介绍 1 1.1 MySQL 的用途 1 1.2 一个样例数据库 4 1.2.1 美国历史同盟 4 1.2.2 学分保存方案 6 1.2.3 样例数据库怎样才能满足需求 6 1.3 基本数据库术语 7 1.3.1 基本术语 7 1.3.2 查询语言术语 9 1.3.3 MySQL的体系结构术语 9 1.4 MySQL教程 10 1.4.1 基本要求 10 1.4.2 取得样例数据库的分发包 11 1.4.3 建立和中止服务器的连接 11 1.4.4 发布查询 13 1.4.5 创建数据库 14 1.4.6 创建表 15 1.4.7 增加新记录 26 1.4.8 检索信息 28 1.4.9 删除或更新现有记录 49 1.4.10 改变表的结构 50 1.5 与 mysql 交互的技巧 51 1.5.1 简化连接过程 51 1.5.2 以较少的键入发布查询 53 1.6 向何处去 56 第2章 用 MySQL 处理数据 57 2.1 MySQL 数据类型 58 2.2 MySQL 的列类型 59 2.2.1 列类型概述 59 2.2.2 数值列类型 61 2.2.3 串列类型 69 2.2.4 日期和时间列类型 76 2.3 选择列的类型 81 2.3.1 列中存储何种类型的值 82 2.3.2 列值有特定的取值范围吗 84 2.3.3 性能与效率问题 85 2.3.4 希望对值进行什么样的比较 87 2.3.5 计划对列进行索引吗 87 2.3.6 列类型选择问题的相互关联程度 88 2.4 表达式求值和类型转换 88 2.4.1 撰写表达式 89 2.4.2 类型转换 94 第3章 MySQL SQL 语法及其用法 99 3.1 MySQL 中的SQL特征 99 3.2 MySQL 的命名规则 100 3.2.1 引用数据库的成分 100 3.2.2 SQL语句中的大小写规则 101 3.3 创建、删除和选择数据库 101 3.4 创建、删除、索引和更改表 102 3.4.1 CREATE TABLE语句 102 3.4.2 DROP TABLE 语句 106 3.4.3 创建和删除索引 106 3.4.4 ALTER TABLE语句 109 3.5 获取数据库和表的有关信息 111 3.6 检索记录 112 3.6.1 平凡连接 113 3.6.2 全连接 113 3.6.3 左连接 114 3.7 加注释 115 3.8 解决方案随笔 116 3.8.1 将子选择编写为连接 116 3.8.2 检查表中未给出的值 117 3.8.3 执行UNION操作 118 3.8.4 增加序列号列 119 3.8.5 对某个已有的列进行排序 120 3.8.6 非正常次序的串 120 3.8.7 建立计数表 120 3.8.8 检查表是否存在 121 3.9 MySQL 不支持的功能 121 第4章 查询优化 125 4.1 使用索引 125 4.1.1 索引的益处 125 4.1.2 索引的弊端 127 4.1.3 选择索引 127 4.2 MySQL 查询优化程序 129 4.2.1 优化程序怎样工作 129 4.2.2 忽略优化 131 4.3 列类型选择与查询效率 132 4.4 有效地装载数据 134 4.5 调度与锁定问题 136 4.6 管理员的优化 137 4.6.1 服务器参数 138 4.6.2 硬件问题 138 第二部分 MySQL 编程接口 第5章 MySQL 程序设计介绍 139 5.1 MySQL 可用的 API 142 5.1.1 C API 143 5.1.2 Perl DBI API 143 5.1.3 PHP API 145 5.2 选择API 146 5.2.1 执行环境 146 5.2.2 性能 147 5.2.3 开发时间 149 5.2.4 可移植性 151 第6章 MySQL C API 152 6.1 建立客户机程序的一般过程 153 6.1.1 基本的系统需求 153 6.1.2 编译和连接客户机程序 153 6.2 客户机程序1—连接到服务器 154 6.3 客户机程序2—增加错误检查 156 6.4 客户机程序3—产生连接代码模块 158 6.5 客户机程序4—在运行时获取连接参 数 163 6.5.1 访问选项文件内容 164 6.5.2 分析命令行参数 166 6.6 处理查询 172 6.6.1 处理不返回结果集的查询 173 6.6.2 处理返回结果集的查询 174 6.6.3 通用目标查询处理程序 176 6.6.4 可选择的查询处理方法 178 6.6.5 mysql_store_result()与 mysql_ use _result()的比较 179 6.6.6 使用结果集元数据 181 6.7 客户机程序5—交互式查询程序 184 6.8 其他主题 185 6.8.1 在结果集上执行计算 185 6.8.2 对查询中有疑问的数据进行编码 187 6.8.3 图像数据的处理 188 6.8.4 获取表信息 189 6.8.5 需要避免的客户机程序设计错误 189 第7章 Perl DBI API 192 7.1 Perl 脚本的特点 192 7.2 Perl DBI 基础 193 7.2.1 DBI数据类型 193 7.2.2 一个简单的DBI脚本 193 7.2.3 处理错误 196 7.2.4 处理不返回结果集的查询 199 7.2.5 处理返回结果集的查询 200 7.2.6 引用问题 206 7.2.7 占位符和参数约束 209 7.2.8 指定连接参数 210 7.2.9 调试 213 7.2.10 使用结果集元数据 215 7.3 运行 DBI 218 7.3.1 生成历史同盟目录 218 7.3.2 发送成员资格更新通知 223 7.3.3 历史同盟成员项目编辑 227 7.3.4 寻找共同兴趣的历史同盟成员 231 7.3.5 联机历史同盟目录 232 7.4 在 Web 应用程序中使用 DBI 234 7.4.1 设置CGI脚本的Apache 235 7.4.2 CGI.pm的简要介绍 236 7.4.3 从Web脚本连接到MySQL服 务器 239 7.4.4 samp_db数据库浏览器 240 7.4.5 学分保存方案分数浏览器 243 7.4.6 历史同盟共同兴趣的搜索 246 第8章 PHP API 248 8.1 PHP 脚本的特点 248 8.2 PHP基础 248 8.2.1 使用函数和include 文件 253 8.2.2 一个简单的查询页面 257 8.2.3 处理查询结果 258 8.2.4 处理错误 261 8.2.5 引用问题 262 8.3 运行 PHP 263 8.3.1 输入学生分数 263 8.3.2 美国总统测验 269 8.3.3 历史同盟联机成员项的编辑 271 第三部分 MySQL 管理 第9章 MySQL 管理介绍 277 9.1 管理职责概述 277 9.2 常规管理 278 9.3 安全性 279 9.4 数据库修复和维护 279 第10章 MySQL 数据目录 280 10.1 数据目录的位置 280 10.2 数据目录的结构 281 10.2.1 MySQL服务器怎样提供对数据 的访问 282 10.2.2 数据库的表示法 283 10.2.3 数据库表的表示法 283 10.2.4 数据库和表命名中的操作系统 约束 284 10.2.5 系统性能的数据目录结构的 含义 285 10.2.6 MySQL的状态文件 286 10.3 重定位数据目录的内容 288 10.3.1 重定位方法 288 10.3.2 估计重定位的效果 289 10.3.3 重定位数据目录 289 10.3.4 重定位数据库 290 10.3.5 重定位数据库表 290 10.3.6 重定位状态文件 290 第11章 常规的MySQL 管理 292 11.1 新的 MySQL 安装的安全性 292 11.2 MySQL 服务器的启动和关闭 293 11.2.1 用无特权的用户账号运行MySQL 服务器 293 11.2.2 启动服务器的方法 295 11.2.3 关闭服务器 296 11.2.4 在不连接时收回服务器的控制 297 11.3 用户账号管理 298 11.3.1 创建新用户和授权 298 11.3.2 取消权限和删除用户 302 11.4 日志文件维护 303 11.5 备份和拷贝数据库 305 11.5.1 用mysqldump备份和拷贝数 据库 307 11.5.2 使用直接拷贝数据库备份和 拷贝方法 308 11.5.3 复制数据库 309 11.6 为数据恢复使用备份 309 11.6.1 恢复整个数据库 310 11.6.2 恢复单个的表 310 11.7 优化服务器 311 11.8 运行多个服务器 312 11.8.1 配置和安装多个服务器 313 11.8.2 多个服务器的启动过程 313 11.9 更新 MySQL 313 第12章 安全性 315 12.1 内部安全性:安全数据目录访问 315 12.2 外部安全性:安全网络访问 317 12.2.1 MySQL授权表的结构和内容 317 12.2.2 服务器如何控制客户机的访问 320 12.2.3 授权表应避免的风险 323 12.2.4 不用GRANT建立用户 324 第13章 数据库维护和修复 328 13.1 检查和维护数据库表 328 13.1.1 myisamchk和 isamchk的调用 语法 328 13.1.2 检查表 329 13.1.3 修复表 329 13.1.4 避免与 MySQL 服务器交互 作用 331 13.1.5 快速运行myisamchk和 isamchk 332 13.2 安排预防性的维护 333 13.2.1 用cron定期检查表 334 13.2.2 在系统启动期间检查表 335 第四部分 附 录 附录A 获得和安装软件 337 附录B 列类型参考 349 附录C 运算符和函数参考 356 附录D SQL 语法参考 384 附录E MySQL 程序参考 408 附录F C API 参考 431 附录G Perl DBI API 参考 453 附录H PHP API 参考 465 附录 I 有用的第三方工具 482 附录 J 因特网服务商 484

    2009-08-09
    36
关注 私信 TA的资源