您好,欢迎光临本网站![请登录][注册会员]  
文件名称: Linux下C编程
  所属分类: C
  开发工具:
  文件大小: 1mb
  下载次数: 0
  上传时间: 2013-03-06
  提 供 者: shangs******
 详细说明: 第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 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: Linux C
 输入关键字,在本站1000多万海量源码库中尽情搜索: