预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共78页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第一篇:起步篇 千里之行,始于足下。 第一章UNIX初步 UNIX自1969年诞生以来,已经发展为SystemIII&V、BSD和Linux三大分支。 UniX通过shell与用户交互,它是用户与系统间的界面。使用好shell对于学习使用UNIX来说是必须 的。不需要你记住所有的命令,但基础的文件操作、目录操作及系统命令等却是必须的。 Vi对于初学者是难点,不过只要通过一段时间的练习就能习惯;而且你会很快发现,它功能强大、更 加灵活。这里不多说了:) 第二章编程套件 学习UNIX对于初学者有几种选择。一种就是最直接的,在本机上安装UNIX系统,不如说Linux分支 中的RedHat等;一种是在Windows环境下使用虚拟机方式安装UNIX系统;另一种则是使用网络终端 登录到网络环境中的某个UNIX系统中。 如果你相对黑洞洞的UNIX字符界面更喜欢舒适美观的Windows界面,那么推荐你选择第三种方式。 开发套件包括:编辑器UltraEdit、网络终端SecureCRT或其他。 编译器就不用说了,自然是cc(gcc或xlc系列)。这是C语言开发必不可少的。其中要注意-I(加载 头文件路径)、-L(加载库文件路径)及-D(宏定义)参数的使用。 Make工具使用。如何编写makefile是关键。后面项目中使用时会详细介绍。 Gdb调试器。Gdb乃符号级调试工具,它控制程序的内部执行,利用断点设置、单步运行等手段,将 程序的执行过程逐步展示在调试者目前。这种调试方式在短代码中可以发挥得很好。事实上,随着软件 项目的扩大化、复杂化和分布化,很少有程序员直接通过Gdb等工具调试;使用日志记录调试方法比 Gdb等调试工具更为便捷和广泛。 C工具:lint检查源代码是否正确,gprof分析程序时间消费量,cflow生成C语言流程图。 第三章库的使用 库分静态库和动态库两种。 静态库的操作工具:ar命令。 编写及使用静态库 (1)设计库源码pr1.c和pr2.c [root@billstonemake_lib]#catpr1.c voidprint1() { printf("Thisisthefirstlibsrc!\n"); } [root@billstonemake_lib]#catpr2.c voidprint2() { printf("Thisisthesecondsrclib!\n"); } (2)编译.c文件 [bill@billstonemake_lib]$cc-O-cpr1.cpr2.c [bill@billstonemake_lib]$ls-lpr*.o -rw-rw-r--1billbill8044月1511:11pr1.o -rw-rw-r--1billbill8044月1511:11pr2.o (3)链接静态库 为了在编译程序中正确找到库文件,静态库必须按照lib[name].a的规则命名,如下例中[name]=pr. [bill@billstonemake_lib]$ar-rsvlibpr.apr1.opr2.o a-pr1.o a-pr2.o [bill@billstonemake_lib]$ls-l*.a -rw-rw-r--1billbill18224月1511:12libpr.a [bill@billstonemake_lib]$ar-tlibpr.a pr1.o pr2.o (4)调用库函数代码main.c [bill@billstonemake_lib]$catmain.c intmain() { print1(); print2(); return0; } (5)编译链接选项 -L及-l参数放在后面.其中,-L加载库文件路径,-l指明库文件名字. [bill@billstonemake_lib]$gcc-omainmain.c-L./-lpr [bill@billstonemake_lib]$ls-lmain* -rwxrwxr-x1billbill118054月1511:17main -rw-rw-r--1billbill504月1511:15main.c (6)执行目标程序 [bill@billstonemake_lib]$./main Thisisthefirstlibsrc! Thisisthesecondsrclib! [bill@billstonemake_lib]$ 编写动态库 (1)设计库代码 [bill@billstonemake_lib]$catpr1.c intp=2; voidprint(){ printf("Thisisthefirstdllsr