自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(1)
  • 资源 (11)
  • 收藏
  • 关注

原创 【无标题】

但当一个Region的所有MemStore大小达到一个阻塞倍数(hbase.hregion.memstore.block.multiplier,默认值为4,即4倍的刷写阈值 默认4*128=512M)时,就会阻塞该Region所有的更新请求,并强制flush。前者受限于一个global memstore size参数,默认为0.4即一个RS中所有MemStore总大小最多占RS堆内存的40%,达到该阈值写入请求就会被阻塞,此时RS日志会有类似"Blocking updates…

2023-07-28 10:48:34 32 1

Linux系统下C程序开发详解

第一部分 Linux基础篇 第1章 Linux编程平台 2 本章讲述了Red Hat Linux 9.0的安装、VMware虚拟机的使用、简单C程序的编写等问题。其中需要重点理解的是Linux系统分区的问题。在分区时需要正确设置各个分区的格式,正确将分区挂载到系统中,并处理好与Windows系统的引导问题。通过C程序实例的练习,可以初步了解Linux系统下C程序的编程过程。 1.1 Linux发行版的介绍 2 1.1.1 Red Hat Linux 2 1.1.2 Debian Linux 2 1.2 Linux的安装 2 1.2.1 Linux的分区格式 3 1.2.2 在Windows系统中划分Linux分区 3 1.2.3 Red Hat 9.0的安装 6 1.2.4 GRUB在Windows分区中引导Linux 15 1.3 VMware虚拟机安装Linux系统 17 1.3.1 VMware软件安装 17 1.3.2 新建虚拟计算机 20 1.3.3 VMware的使用 24 1.3.4 在VMware虚拟机中安装Linux系统 26 1.4 第一个C程序 28 1.4.1 在Linux中编写C程序代码 28 1.4.2 编译程序 29 1.5 小结 30 第2章 文本编辑器的使用 31 本章讲述了VIM、GVIM、gedit三种Linux系统下常用的文本编辑器软件。其中VIM是一个全字符操作的文本编辑器,学习的重点是各种命令的记忆和使用。gedit是一个图形图面的文本编辑器,操作非常简单。GVIM结合了VIM命令操作与gedit界面操作的两种功能。VIM是本章学习的难点,在Linux全字符界面的管理中,需要灵活运用VIM进行文本编辑。 2.1 VIM的使用 31 2.1.1 VIM的启动 31 2.1.2 在桌面上创建VIM启动器 31 2.1.3 VIM的工作模式 32 2.1.4 保存与打开文件 33 2.1.5 移动光标 34 2.1.6 插入 36 2.1.7 删除 36 2.1.8 取消 37 2.1.9 保存 37 2.1.10 退出 37 2.1.11 查找 38 2.1.12 替换 38 2.1.13 选项设置 38 2.1.14 调用shell命令 39 2.2 VIM使用实例 39 2.2.1 字符的插入与删除 39 2.2.2 字符的查找与替换 40 2.3 GVIM 41 2.3.1 文件的新建与保存 41 2.3.2 查找与替换 42 2.4 gedit 43 2.4.1 gedit的启动与打开文本 44 2.4.2 gedit编辑文件 44 2.4.3 gedit打印文件 46 2.4.4 gedit的首选项 47 2.5 小结 50 第二部分 Shell编程篇 第3章 Linux常用命令 52 本章主要介绍了Linux中常用的文件操作命令和系统帮助文档的使用。在以后的编程学习中,需要使用这些命令对文件进行各种操作,其中文件权限的设置是一个难点,在使用这个命令时,需要注意命令参数的作用与含义。读者有学习中遇到的问题,可以使用man帮助手册查看相关的帮助信息。 3.1 目录与文件命令 52 3.1.1 查看目录命令pwd 52 3.1.2 打开目录命令cd 52 3.1.3 查看目录命令ls 53 3.1.4 建立文件命令touch 54 3.1.5 建立与删除文件夹命令mkdir,rmdir 54 3.1.6 文件复制命令cp 55 3.1.7 文件移动和更名命令mv 56 3.1.8 删除文件与目录命令rm 56 3.1.9 创建链接命令ln 57 3.1.10 查看文件信息命令wc 58 3.1.11 文件查看命令cat 58 3.1.12 查看文件视图命令head与tail 59 3.1.13 文件权限设置命令chmod 59 3.1.14 查找文件命令find 61 3.2 man系统帮助命令 61 3.2.1 man手册的使用方法 61 3.2.2 帮助文档的结构 62 3.3 info手册 62 3.4 小结 63 第4章 Shell编程 64 本节讲述了Shell程序的基本语法。通过本章的学习,可以编写出简单的Shell程序完成各种系统功能。在Shell程序的学习中,需要注意局部变量和环境变量的使用、各种符号的使用方法。测试语句与流程控制语句是本章的难点,需要对程序的各种变量进行逻辑判断,执行不同的程序。 4.1 bash的使用 64 4.1.1 bash的内部命令与外部命令 64 4.1.2 命令补齐功能 64 4.1.3 命令通配符 64 4.1.4 使用命令的历史记录 65 4.1.5 命令的别名 66 4.2 shell程序的基本结构 66 4.3 局部变量 67 4.4 环境变量 68 4.4.1 环境变量的查看 68 4.4.2 环境变量的访问 68 4.4.3 环境变量的定义 69 4.4.4 在系统配置文件中定义环境变量 69 4.4.5 位置变量 69 4.5 shell的运算符 70 4.5.1 变量赋值 70 4.5.2 算术运算符 71 4.6 输入和输出 72 4.6.1 echo命令输出结果 72 4.6.2 read命令读取信息 74 4.6.3 文件重定向 75 4.7 引号的使用方法 76 4.7.1 双引号 76 4.7.2 单引号 77 4.7.3 反引号 77 4.7.4 反斜线 77 4.8 测试语句 78 4.8.1 文件状态测试 78 4.8.2 数值测试 79 4.8.3 字符串测试 79 4.8.4 逻辑测试 80 4.9 流程控制结构 80 4.9.1 if语句 81 4.9.2 if语句应用实例 82 4.9.3 for语句 84 4.9.4 for循环应用实例 85 4.9.5 until语句 86 4.10 Shell编程实例 87 4.10.1 程序的功能 87 4.10.2 编写程序的代码 88 4.11 小结 89 第三部分 C程序基础篇 第5章 编译与调试 92 程序的编译和调试是编程的一个重要环节。本章讲解了Linux系统中C编程的编译器gcc和编译器gdb的使用。使用gcc时,需要对编译进行各种设置,需要理解gcc各项参数的作用。gdb的学习重点是gdb单步运行程序的理解,通过程序的单步运行发现程序中的问题。 5.1 编译的概念和理解 92 5.1.1 程序编译的过程 92 5.1.2 编译器 92 5.2 gcc编译器 93 5.2.1 gcc编译器简介 93 5.2.2 gcc对源程序扩展名的支持 93 5.3 C程序的编译 94 5.3.1 编写第一个C程序 94 5.3.2 用gcc编译程序 95 5.3.3 查看gcc的参数 96 5.3.4 设置输出的文件 97 5.3.5 查看编译过程 97 5.3.6 设置编译的语言 98 5.3.7 -asci设置ANSIC标准 98 5.3.8 g++编译C++程序 98 5.4 编译过程的控制 99 5.4.1 编译过程简介 100 5.4.2 控制预处理过程 100 5.4.3 生成汇编代码 101 5.4.4 生成目标代码 102 5.4.5 链接生成可执行文件 102 5.5 gdb调试程序 103 5.5.1 gdb简介 103 5.5.2 在程序中加入调试信息 103 5.5.3 启动gdb 103 5.5.4 在gdb中加载需要调试的程序 104 5.5.5 在gdb中查看代码 104 5.5.6 在程序中加入断点 105 5.5.7 查看断点 105 5.5.8 运行程序 105 5.5.9 变量的查看 106 5.6 程序调试实例 107 5.6.1 编写一个程序 107 5.6.2 编译文件 108 5.6.3 程序的调试 108 5.6.4 gdb帮助的使用 111 5.7 gdb常用命令 111 5.8 编译程序常见的错误与问题 112 5.8.1 逻辑错误与语法错误 113 5.8.2 C程序中的错误与异常 113 5.8.3 编译中的警告提示 113 5.8.4 找不到包含文件的错误 114 5.8.5 错误地使用逗号 114 5.8.6 括号不匹配错误 114 5.8.7 小括号不匹配错误 115 5.8.8 变量类型或结构体声明错误 115 5.8.9 使用不存在的函数的错误 115 5.8.10 大小写错误 116 5.8.11 数据类型的错误 116 5.8.12 赋值类型错误 116 5.8.13 循环或判断语句中多加分号 116 5.9 小结 117 第6章 C语言基础 118 本章讲解了数据类型、变量赋值与输出、常用运算符等知识。这些知识是编写C程序的基础,通过这些知识的学习,可以理解C程序的一些概念,编写简单的C语言程序。在本章的学习中,数据类型与运算符的使用是重点,需要详细地理解数据类型的概念和输出方式。 6.1 C程序的基本概念 118 6.1.1 C程序的基本结构 118 6.1.2 C程序的一般格式 119 6.1.3 C程序中的注释 120 6.2 数据类型 120 6.2.1 整型(int) 121 6.2.2 浮点型(float) 122 6.2.3 字符型(char) 123 6.2.4 变量名 124 6.2.5 字符NULL 124 6.3 变量的赋值与输出 124 6.3.1 变量的赋值 125 6.3.2 printf函数输出变量 125 6.3.3 scanf函数从键盘读入变量 127 6.4 运算符 128 6.4.1 算术运算符 128 6.4.2 关系运算符 130 6.4.3 逻辑运算符 130 6.5 小结 131 第7章 C程序的常用语句 132 本章讲述了C程序中的流程控制语句。流程控制语句实现了程序的逻辑功能,可以完成各种复杂的程序运算,是编程开发的基础和重点。其中,循环语句和条件语句是本章的重点,需要理解这些语句的结构和执行流程。 7.1 流程控制语句 132 7.1.1 if条件语句 132 7.1.2 if语句的嵌套 134 7.1.3 switch选择执行语句 136 7.1.4 for循环语句 138 7.1.5 for循环的嵌套 140 7.1.6 for循环应用实例:输出九九乘法口诀表 141 7.1.7 while循环语句 142 7.1.8 do while循环语句 144 7.1.9 转移控制语句:continue 145 7.1.10 转移控制语句:break 146 7.1.11 转移控制语句:return 146 7.2 流程控制语句实例 147 7.2.1 三个数字的排序 147 7.2.2 解一元二次方程 149 7.3 两种特殊语句结构 151 7.3.1 ?三元操作符 151 7.3.2 块语句 152 7.4 小结 152 第四部分 指针与函数篇 第8章 数组与指针 154 数组与指针的知识是C程序中的重要内容,可以实现很多复杂的功能和算法。数组与指针这两个概念的理解是个难点,需要建立起直观形象的空间概念。在实际开发时各种对象与算法常常通过指针与数组建立起来的,需要使用各种复杂的指针和数组。在程序设计练习时需要注意数组与指针的应用技巧。 8.1 数组的理解与操作 154 8.1.1 什么是数组 154 8.1.2 数组的定义与访问 155 8.1.3 数组使用实例 156 8.2 指针 157 8.2.1 指针的理解 157 8.2.2 指针操作符 157 8.2.3 指针的定义与访问 158 8.2.4 指针使用实例 159 8.3 数组与指针 160 8.3.1 数组与指针的关系 160 8.3.2 指针的算术运算 160 8.3.3 字符数组与字符串 161 8.4 二维数组与多维数组 162 8.4.1 二维数组的理解 163 8.4.2 二维数组与指针 164 8.5 实例 165 8.5.1 学生成绩统计实例 165 8.5.2 冒泡法排序实例 166 8.5.3 统计字符串中字符 168 8.5.4 小写字母转换成大写字母 170 8.5.5 指针访问数组 171 8.6 常见问题 172 8.6.1 错误的写操作 172 8.6.2 指针的错误赋值 173 8.6.3 数组指针的越界错误 174 8.7 小结 175 第9章 函数 176 本章讲述了C程序中的函数操作。学习难点是自定义函数的理解和使用。函数可以把一个功能或模块封装起来,程序可以方便地使用这个已经封装的功能。在自定义函数中,需要注意函数的参数与返回值。指针与数组作为一种特殊的数据类型可以作为函数的参数和返回值,这一知识比较难以理解,读者在学习时需要根据实例理解函数中指针和数组的作用。 9.1 函数的理解 176 9.1.1 什么是函数 176 9.1.2 系统函数(库函数)与用户自定义的函数 177 9.1.3 函数的返回值 178 9.1.4 无参函数 179 9.1.5 有参函数 180 9.1.6 函数参数实例 180 9.2 自定义函数 181 9.2.1 自定义函数的编写 181 9.2.2 函数中调用函数 183 9.2.3 函数的声明 184 9.2.4 递归函数 186 9.2.5 main函数的参数argc与argv 187 9.3 函数与指针 188 9.3.1 值调用与引用调用 188 9.3.2 引用调用与指针 189 9.3.3 指针参数简单实例 190 9.3.4 自定义函数中指针使用实例 191 9.3.5 数组作为参数 192 9.3.6 数组作为函数参数实例 194 9.4 返回值 195 9.4.1 函数返回值的类型 195 9.4.2 函数返回指针 196 9.4.3 函数返回指针实例 197 9.4.4 函数返回结果到参数 198 9.5 库函数 198 9.5.1 库函数的种类 198 9.5.2 库函数包含文件 199 9.5.3 头文件使用实例 200 9.6 小结 201 第10章 字符与字符串处理 202 本章讲述了C程序中的字符测试、字符串转换、字符串操作三方面的知识。在C程序中常常需要使用这些知识对字符和字符串进行测试和操作。 10.1 字符测试函数介绍 202 10.1.1 数字或字母测试函数isalnum 202 10.1.2 字母测试函数isalpha 203 10.1.3 可打印字符测试函数isgraph 204 10.1.4 大小写字母测试函数islower和isupper 205 10.1.5 数字测试函数isxdigit 206 10.1.6 符号测试函数ispunct 207 10.1.7 其他字符测试函数 208 10.2 字符测试函数综合实例 208 10.2.1 统计字符串中各类字符的个数 208 10.2.2 判断电话号码与姓名是否正确 210 10.3 字符串转换 212 10.3.1 C程序中的字符串 212 10.3.2 字符串转换成浮点型函数atof 213 10.3.3 字符串转换成整型函数atoi 214 10.3.4 字符串转换成长整型函数atol 215 10.3.5 将浮点型数转换成字符串函数ecvt 216 10.3.6 字母的大小写转换函数tolower和toupper 217 10.3.7 其他字符串转换函数 218 10.4 字符串比较 218 10.4.1 字符串比较函数bcmp 219 10.4.2 字符串大小比较函数memcmp 220 10.4.3 忽略大小写比较字符串函数strncasecmp 221 10.5 字符串复制 222 10.5.1 字符串复制函数bcopy 222 10.5.2 字符串复制函数memccpy 223 10.5.3 字符串复制函数strcpy 223 10.5.4 字符串复制函数strncpy 224 10.6 字符串的清理与填充 225 10.6.1 字符串清理函数bzero 225 10.6.2 字符串填充函数memset 226 10.7 字符串查找 227 10.7.1 字符查找函数index与rindex 227 10.7.2 字符查找函数memchr 228 10.7.3 字符查找函数strchr与strrchr 228 10.8 字符串的连接与分割 229 10.8.1 字符串连接函数strcat 229 10.8.2 字符串分割函数strtok 230 10.9 其他字符串函数 231 10.9.1 字符串长度函数strlen 231 10.9.2 允许出现字符查找函数strspn 232 10.9.3 不允许出现字符查找函数strcspn 233 10.10 小结 234 第11章 结构体 235 本章讲解了C程序的结构体操作。结构体是对现有数据类型的扩充,可以把有实际含义的事物定义为一个结构体数据类型。程序中使用结构体数据类型可以方便地处理有实际含义的数据。本章的内容中,结构体指针和与结构体相关的函数是个难点,要掌握用结构体指针访问结构成员变量的方法,需要仔细理解结构体指针与结构体函数的作用。本章中的最后一个实例是结构体的一个综合运用,处理了复杂的数据与功能,建议学习时完成这个程序的编写。 11.1 结构体的操作 235 11.1.1 结构体的理解 235 11.1.2 结构体的定义 235 11.1.3 结构体的访问 237 11.1.4 结构体数组 238 11.1.5 结构体使用实例 239 11.2 结构体与指针 241 11.2.1 结构体指针的定义 241 11.2.2 结构体指针的访问 242 11.2.3 结构体作为函数的参数 244 11.2.4 结构体指针作为函数的参数 245 11.2.5 结构体作为函数的返回值 247 11.2.6 结构体指针作为函数的返回值 248 11.3 结构体实例 250 11.3.1 程序的需求分析 250 11.3.2 程序中的函数 251 11.3.3 程序中的结构体与全局变量 251 11.3.4 头文件和函数声明 252 11.3.5 定义结构体和全局变量 252 11.3.6 显示学生信息的函数 252 11.3.7 程序的选择菜单 253 11.3.8 学生信息输入函数 254 11.3.9 按姓名查找函数 255 11.3.10 删除学生函数 255 11.3.11 按年龄查找函数 256 11.3.12 按身高查找函数 257 11.3.13 按性别查找函数 257 11.3.14 程序的主函数 258 11.3.15 程序的运行和调试 259 11.4 小结 261 第12章 时间函数 262 本章讲解了C函数中的时间函数。在本章的学习中,time_t时间类型与tm时间结构体的理解是个难点。相关的函数都需要使用这两种时间或指针作为参数。其中time, gmtime, ctime, asctime, gettimeofday这几个函数需要重点掌握。最后通过三个实例演示了时间函数的使用方法与技巧。 12.1 常用时间函数 262 12.1.1 返回时间函数time 262 12.1.2 取当前时间函数gmtime 263 12.1.3 字符串格式时间函数ctime 265 12.1.4 字符串格式时间函数asctime 266 12.1.5 取得当地时间函数localtime 267 12.1.6 将时间转换成秒数函数mktime 268 12.1.7 取得当前的时间函数gettimeofday 269 12.1.8 设置当前时间函数settimeofday 270 12.2 时间函数使用实例 271 12.2.1 运行程序所需要的时间 272 12.2.2 两次输入之间的时间间隔 272 12.2.3 设置系统时间 273 12.3 小结 275 第五部分 文件与目录篇 第13章 目录与文件 278 本章讲解了目录和文件的基本操作。其中需要掌握的知识包括目录的创建与删除、文件的创建与删除、文件的移动与复制、文件的锁定与权限、文件的缓冲区操作和文件的读写。其中文件的读写是本章的难点,需要做大量的编程练习。最后的综合实例讲解了文件在程序中的运用方法,难点是将程序处理的信息保存到文件。文件内容的具体操作,将在下一章中讲到。 13.1 文件操作的权限 278 13.2 错误处理与错误号 279 13.2.1 错误定义的理解 279 13.2.2 用错误常数显示错误信息 280 13.2.3 用错误序号显示错误信息 281 13.3 创建与删除目录 282 13.3.1 创建目录函数mkdir 282 13.3.2 删除目录函数rmdir 284 13.4 文件的创建与删除 285 13.4.1 创建文件函数creat 285 13.4.2 删除文件函数remove 286 13.4.3 建立临时文件函数mkstemp 288 13.5 文件的打开与关闭 289 13.5.1 打开文件函数open 289 13.5.2 文件打开方式的设置 290 13.5.3 打开文件的权限 290 13.5.4 文件打开实例 291 13.5.5 关闭文件函数close 292 13.6 文件读写 294 13.6.1 在文件中写字符串函数write 294 13.6.2 读取文件函数read 296 13.6.3 文件读写位置的移动 297 13.6.4 将缓冲区数据写入到磁盘函数sync 299 13.6.5 将缓冲区数据写入到磁盘函数fsync 300 13.7 文件锁定 302 13.7.1 文件锁定的理解 302 13.7.2 文件锁定函数flock 302 13.7.3 文件锁定函数fcntl 304 13.7.4 文件锁定函数fcntl使用实例 306 13.8 文件的移动与复制 307 13.8.1 文件的移动函数rename 307 13.8.2 rename函数使用实例 308 13.8.3 文件复制实例 309 13.9 文件实例:电话本程序 311 13.9.1 程序功能分析 311 13.9.2 程序的函数 311 13.9.3 包含文件 312 13.9.4 数据的定义 312 13.9.5 菜单函数 312 13.9.6 显示电话信息函数 314 13.9.7 添加电话号码函数 314 13.9.8 按姓名查找函数 314 13.9.9 删除电话号码函数 315 13.9.10 保存到文件函数 316 13.9.11 从文件导入信息函数 317 13.9.12 主函数 317 13.9.13 程序的运行 319 13.10 小结 320 第14章 文件I/O 321 本章讲述了文件I/O操作,重点内容是文件的打开关闭和读写操作。在使用文件打开函数时,需要注意打开方式和权限的设置。使用putc, fputc, fputs, fwite等文件读写函数时,需要注意这些函数作用和不同参数的含义。在编程时,可以把程序的结果记录到文件中,实现程序数据的长期保存。 14.1 文件的打开与关闭 321 14.1.1 文件打开函数fopen 321 14.1.2 文件打开函数fdopen 323 14.1.3 打开文件函数freopen 324 14.1.4 关闭文件函数fclose 325 14.2 文件的读写 326 14.2.1 字符写入函数putc与fputc 326 14.2.2 向文件中写入字符串函数fputs 328 14.2.3 数据写入函数fwrite 329 14.3 小结 330 第六部分 网络编程篇 第15章 网络编程 332 本章主要讲述了IP地址、域名、网络套接字、端口、服务等概念和相关的处理,其中套接字的理解和网络编程中常用的结构体是本章的重点。在编程中,常常需要使用到服务、地址、主机等结构体,需要理解这些结构体的作用与使用方法。最后一节的错误处理是网络编程时通用的错误处理方法,用这些错误处理函数可以方便地进行程序跟踪和调试。 15.1 网络编程的基本概念 332 15.1.1 IP地址 332 15.1.2 端口 332 15.1.3 域名 333 15.1.4 TCP与UDP 333 15.2 套接字 333 15.2.1 什么是套接字 334 15.2.2 套接字相关的数据类型 334 15.2.3 套接字类型 335 15.3 域名与IP地址 335 15.3.1 用域名取得主机的IP地址 335 15.3.2 用IP地址返回域名 337 15.4 网络协议 338 15.4.1 由协议名取得协议数据 339 15.4.2 由协议编号取得协议信息 340 15.4.3 取得系统支持的所有协议 341 15.5 网络服务 343 15.5.1 取得系统支持的网络服务 343 15.5.2 用名称取得系统所支持的服务 344 15.5.3 由端口取得服务名称 346 15.6 网络IP地址的转换 347 15.6.1 将网络地址转换成长整型 348 15.6.2 将长整型IP地址转换成网络地址 348 15.6.3 主机字符顺序与网络字符顺序的转换 349 15.7 错误处理 351 15.7.1 herror函数显示错误 351 15.7.2 捕获错误编号 351 15.8 小结 352 第16章 无连接的套接字通信 353 本章讲述了网络通信套接字和无连接的套接字通信。在学习时,需要重点理解套接字的含义和套接字的基本操作。无连接的套接字通信是一种简单的网络通信方式,编程的重点是信息的发送与接收。本章的实例,是无连接的套接字通信基本方式,可以实现两个计算机之间的文字信息传输,读者可以在这两个程序的基础上编写出文本模式下的聊天软件。 16.1 socket套接字 353 16.1.1 建立socket 353 16.1.2 取得socket状态 355 16.1.3 设置socket状态 357 16.2 无连接的套接字通信 358 16.2.1 工作流程 358 16.2.1 信息发送函数sendto 359 16.2.2 信息接收函数recvfrom 360 16.3 无连接的套接字通信实例 361 16.3.1 无连接套接字通信客户端 361 16.3.2 无连接套接字通信服务器 362 16.3.3 测试UDP通信程序 364 16.4 小结 365 第17章 面向连接的套接字通信 366 本节讲述了面向连接的套接字网络通信,这种信息传输方式是网络中最常用最重要的信息传输方式。本节的知识重点是端口监听、远程连接、接受连接、接收和发送信息四个操作。最后一节的程序实例演示了面向连接的信息传输过程,通过这个实例的学习,可以学习本节中所讲述的套接字连接的综合操作。这个实例是网络传输的最基本的原理和形式,用这种方法可以实现不同计算机之间的文本、文件等类型数据的传输。 17.1 面向连接的套接字通信工作流程 366 17.2 绑定端口 367 17.2.1 绑定端口函数bind 367 17.2.2 bind函数绑定端口实例 368 17.3 监听与连接 369 17.3.1 等待监听函数listen 369 17.3.2 listen函数使用实例 370 17.3.3 接受连接函数accept 371 17.3.4 accept函数使用实例 372 17.3.5 请求连接函数connet 374 17.3.6 connet函数使用实例 375 17.4 数据的发送与接收 376 17.4.1 数据接收函数recv 376 17.4.2 recv函数使用实例 377 17.4.3 信息发送函数send 379 17.4.4 数据传输函数write与read 379 17.4.5 read函数接收数据实例 380 17.5 面向连接套接字通信实例 382 17.5.1 服务器程序 382 17.5.2 客户端程序 385 17.5.3 实例程序测试 386 17.6 小结 387 第七部分 图形界面开发篇 第18章 Linux图形界面开发基础 390 本章简要介绍了Linux系统的桌面环境和图形界面程序的编程步骤。Linux系统有GNOME和KDE两种常用的桌面环境,桌面环境为Linux的使用带来了很大的便利。本章讲述了一个简单的图形界面程序的实例。图形界面的使用可以大大地增强程序的交互功能。C语言可以通过调用GTK库来编写各种复杂图形界面的程序。在图形界面的编程中,需要注意程序编译的参数问题。 18.1 X Window系统简介 390 18.1.1 X Window的历史 390 18.1.2 X Window体系结构 390 18.2 Linux桌面环境 391 18.2.1 KDE 391 18.2.2 GNOME 392 18.3 Linux下的图形程序开发环境 393 18.3.1 GTK+简介 393 18.3.2 yum安装GTK 393 18.3.3 用软件包管理器安装GTK 394 18.4 编写一个简单的图形界面程序 395 18.4.1 编写程序代码 395 18.4.2 编译程序 396 18.4.3 程序的运行 397 18.5 常见问题 397 18.5.1 找不到gtk.h包含文件的错误 397 18.5.2 pkg-config参数的作用 397 18.6 小结 398 第19章 图形界面编程 399 本章讲述了GTK图形界面编程的基本原理,以及窗口、按钮、标签、文本框等图形元件的简单操作。通过这些知识的学习,可以对Linux界面编程有一个大致的了解,可以用这些元件编写出简单的Linux界面程序。窗口等元件的使用是本章的重点,需要理解元件建立、元件简单设置等操作。 19.1 窗口 399 19.1.1 最简单的窗口程序 399 19.1.2 窗口的构建过程 399 19.1.3 新建窗口函数gtk_window_new 400 19.1.4 设置窗口的标题 401 19.1.5 设置窗口的大小与位置 402 19.2 标签 403 19.2.1 建立一个标签 403 19.2.2 将标签添加到窗口中 403 19.2.3 设置与获取标签的文本 404 19.2.4 实例:用标签显示当前时间 406 19.3 按钮 407 19.3.1 添加一个按钮 407 19.3.2 取得与设置按钮的标签 408 19.4 文本框 410 19.4.1 建立文本框 410 19.4.2 获取与设置文本框数据 411 19.5 小结 412 第20章 界面布局 413 本章主要讲述了GTK图形界面程序中元件的布局方法。表格元件是非常重要的布局元件,可以在表格的单元格中插入不同的元件,从而实现元件的布局和排列。本章的难点是如何将一个元件添加到表格的一个单元格中,如何控制单元格的行列。通过对表格布局的学习,可以在一个窗口中设计出复杂的界面。 20.1 表格 413 20.1.1 表格的建立 413 20.1.2 表格中添加元件 414 20.1.3 表格使用实例 415 20.1.4 单元格的合并 416 20.1.5 表格中添加表格 418 20.2 垂直框 419 20.2.1 添加垂直框 419 20.2.2 垂直框中添加元件 420 20.3 水平窗格 422 20.3.1 新建一个窗格 422 20.3.2 窗格中添加元件 423 20.4 小结 425 第21章 信号与事件 426 本章讲述了GTK元件的信号与事件。在图形界面程序中,程序的功能是通过信号和事件来完成的。在本章的学习中,需要理解信号与事件的原理、信号与事件的处理方法。最后一节的计算器实例是信号与事件的综合应用,读者通过这一实例学习和理解程序中的事件处理过程。 21.1 信号 426 21.1.1 添加信号 426 21.1.2 事件函数的参数 427 21.1.3 在函数中使用全局变量 429 21.2 GTK事件 430 21.3 实例:加法计算器 430 21.3.1 程序功能的分析 430 21.3.2 程序的实现 431 21.4 实例:计算器 433 21.4.1 程序的功能分析 433 21.4.2 程序的功能模块 434 21.4.3 包含头文件与定义全局变量 434 21.4.4 单击按钮输入函数 435 21.4.5 加法运算函数 435 21.4.6 减法运算函数 436 21.4.7 乘法运算函数 437 21.4.8 除法运算函数 437 21.4.9 输入小数点函数 438 21.4.10 清除数据函数 438 21.4.11 界面构建函数 438 21.4.12 添加事件函数 441 21.4.13 主函数 442 21.4.14 程序的编译和运行 442 21.5 小结 443 第22章 Glade设计程序界面 444 本章讲述了使用Glade自动生成程序界面的方法。Glade提供了各种图形界面工具,可以自动生成各种程序图形界面,自动生成C语言的图形界面代码。在本章的学习中,需要注意图形工具的使用方法。表格是一个功能强大的窗口布局工具,利用表格可以方便地实现窗口中各种元件的布局。 22.1 Glade简介 444 22.2 使用Glade设计程序界面 444 22.2.1 启动Glade 444 22.2.2 打开Glade的工作面板 444 22.3 Glade设计窗口 445 22.3.1 新建一个项目 446 22.3.2 新建一个窗口 446 22.3.3 设置窗口的标题和名称 446 22.3.4 设置窗口的大小 447 22.3.5 设置程序的图标 448 22.4 添加表格 448 22.4.1 窗体中添加表格 448 22.4.2 插入行和列 449 22.5 添加标签 449 22.5.1 表格中添加标签 449 22.5.2 设置标签的名称和内容 450 22.5.3 设置标签的填充边界 450 22.5.4 设置标签的倾斜角度 451 22.6 添加文本框 452 22.6.1 表格中添加文本框 452 22.6.2 设置文本框 452 22.6.3 将文本框设置成密码文本框 453 22.7 添加按钮 454 22.7.1 添加按钮 454 22.7.2 按钮的属性设置 454 22.8 添加信号与事件 455 22.8.1 在Glade中添加信号 455 22.8.2 信号函数的编写 456 22.9 程序的编译 457 22.10 小结 457 第23章 Qt编程入门 458 Qt是一个功能强大的用户界面库,通过Qt可以建立各种功能强大、界面美观的图形界面应用程序。本章对Qt进行了简要介绍。读者需要在自己的计算机中建立Qt开发环境,通过“Hello,world.”Qt程序的编写对Qt的编程步骤、编译运行进行学习。本章需要重点掌握的是Qt工程的编译过程,在后面的学习中,将会使用这些编译方法对Qt工程进行编译。 23.1 Qt简介 458 23.2 Qt的安装 460 23.2.1 升级的方式安装Qt 460 23.2.2 下载软件包的方式安装Qt 461 23.3 第一个Qt程序 463 23.3.1 编写Qt源文件 463 23.3.2 建立工程文件 464 23.3.3 编译和运行程序 464 23.3.4 Qt程序的结构 466 23.4 窗体 467 23.4.1 运行一个窗体程序的参数 467 23.4.2 窗体参数使用实例 468 23.5 小结 469 第24章 使用Qt Designer开发Qt程序 470 本节讲述了Qt Designer开发Qt程序相关的知识。Qt Designer是一个功能强大的C++应用程序开发平台,最主要的功能是能够方便地设计应用程序的界面。通过各种工具和向导,可以方便地建立程序的窗口和窗口中的各种元件。信号和事件是用户与程序实现交互的基本方式。Qt Designer的信号设置功能可以方便地建立元件的信号和事件,通过对事件函数的编写,可以完成各种复杂程序的设计。 本章是全书的最后一章。通过对本书的学习,可以对Linux系统下的编程有一个全面的了解和学习。Linux是一个功能强大、性能优越的系统,是编程学习和开发的广阔舞台。通对Linux系统的使用和Linux系统下编程的学习,可以对操作系统、编程思想方面有一个很大的提高。软件开发是一个前沿学科,Linux和C程序有着无穷无尽的知识和研究领域,愿读者朋友们以本书的学习作为起点,勇攀软件开发的高峰。 24.1 Qt Designer建立程序 470 24.1.1 用Qt Designer建立一个工程 470 24.1.2 建立一个窗口 472 24.1.3 建立主函数 475 24.1.4 编译和运行程序 476 24.2 按钮 477 24.2.1 窗口中添加按钮 477 24.2.2 设置按钮 478 24.3 文本框 481 24.3.1 窗口中添加文本框 481 24.3.2 设置文本框 482 24.4 信号 484 24.4.1 建立工程和窗口 484 24.4.2 设置信号 486 24.4.3 建立程序的主函数 487 24.4.4 编译和运行程序 488 24.5 信号与自定义信号函数 489 24.5.1 建立工程和窗口 489 24.5.2 建立事件函数 490 24.5.3 编译和运行程序 492 24.6 信号实例:显示计算机时间 493 24.6.1 建立窗口 493 24.6.2 设置按钮的信号 494 24.6.3 编译和运行程序 495 24.7 菜单和工具栏 496 24.7.1 “Main Window”建立窗口 496 24.7.2 编译和运行程序 499 24.8 小结 500

2012-10-27

DirectShow实务精选

c++的好书,c++ DirectShow的入门书籍。

2012-09-24

Apriori c++版

此算法程序经过修改了其它版本的BUG,是处于CSDN资源中优于其它同类Apriori算法的好程序,希望大家共享,共同进步,不下这个将会可惜,因为此算法无BUG,不像其它有些程序是不正确的,而此算法绝对可信!

2012-09-06

AIX用户必备

AIX用户的入门必读之物,希望大家珍惜,必看!

2012-07-20

ORACLE DATAGUARD维护手册

oracle业内的巨作,希望对大家有所帮助,其它地方看不见的绝世产品

2012-03-26

oracle的sql调优宝典

相当不错的技术资料 不容错过 是ORACLE业内的精华 任何一个DBA不会错过的宝典

2012-03-26

sqlplus命令汇总

oracle的sqlplus工具的常用命令的全部诠释

2012-03-26

oracle OCP经典试题

必备试题,对于要认证OCP的人来说是一笔具有的价值,希望珍重

2012-03-26

google云计算经典论文

揭穿google经典之作 云计算方面的臂助 希望对大家有帮助 适合google及云计算方面的人群

2012-03-26

历年软件考试软件设计师

It's very good !!!I think you are good too!!!

2008-12-25

JAVA优秀程序源码

VERY GOOD! 这些程序的源码非常有益于你

2008-12-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除