当前软件业开发工具日新月异,从C到C++,从Java到.net,新构架、新组件层出不穷,今天刚学习到的知识,也许明天就已经过时了。要想在激烈的竞争中站稳脚跟,在知识大爆炸中跟上时代的步伐,软件开发者一般会有两种应对方式:
1. 疯狂的学习,每天恶补新知识以适应知识发展的需要。
2. 打牢基础,选择一个相对稳定的平台和相对稳定的开发语言,以不变应万变。
在Unix下C语言编程是一种相对稳定的开发平台下的开发语言,掌握了它,就可以轻松完成当前Unix服务器下疯狂增长的各式各样的功能需求。
为什么选择Unix编程
在工业领域,Unix的应用范围非常广泛,采用Unix系统的服务器性能更稳定,资源利用率更高,更易于维护。选择Unix编程的理由如下:
1. Unix是现今大中型企业级应用的最佳支持方案
当前,银行、电信、证券等大型数据库需求商无一例外的选择了Unix操作系统。固然这里存在设备的原因(这些企业选择的大、中、小型机一般只支持厂家配套的Unix操作系统),但另一方面也与Unix超强性能分不开。
Unix操作系统具有安全、稳定和多用户等多方面的特点,可以充分发挥设备的性能,尤其适用对系统性能、文件I/O吞吐量、并发能力、安全认证、网络吞吐和交易时间等有着极高要求的大型网络服务器和数据库服务器。诸如现今流行的网络游戏,其后台服务器的支持也首选Unix操作系统。
2. Linux为小型企业级应用提供了优质性价比的支持方案
Linux的出现为X86型主机运行Unix成为了可能,也为小型企业提供优质的应用支持方案。运行Linux(或其它支持X86的Unix)的服务器,也被广泛的应用于网站、中小型网络游戏和其它应用系统中。
3. Unix的分时多用户功能极大地方便了主机共享和远程维护
与Windows的独占性操作系统不同,Unix是分时多用户系统,它允许多人同时登陆主机。共享主机的不同用户之间相互并发,互不影响,就像每个用户都在使用自己单独的主机一样。
Unix的网络终端远程登陆功能为零距离维护提供了可能,维护人员无论何时何地,只要有网络,就可以凭借Unix对TELNET协议或SSH协议的支持,以极少的系统资源消耗登陆主机,真正做到了运筹帷幄之中,决胜千里之外。
Unix编程的内容
Unix下C语言编程的基本思想与普通C语言编程无异,只是加入了大量的系统调用和特殊应用处理,其主要内容如下:
1. 文件I/O系统调用
包括Unix文件系统基础知识、标准I/O编程库、Unix文件系统调用库等。
2. 时间与信号系统调用
包括时间获取与设置、定时器的使用、信号系统的调用等。
3. 进程与线程系统调用
包括进程与线程的系统控制与生命周期,利用进程或线程设计并发程序的方法等。
4. 进程间通讯系统调用
包括管道和IPC(消息队列、信号量和共享内容等)的系统调用等。
5. SOCKET通讯应用
包括SOCKET通讯的各种模式和SOCKET与多进程、多线程的联合并发程序设计的方法等。
6. Curses字符界面应用
包括利用Curses函数库操作网络终端和物理终端的方法,以及Curses库与SOCKET的联合程序设计的方法等。
7. 数据库编程应用
包括利用数据库提供的API函数和嵌入式SQL直接操作数据库的方法等。
怎样学习Unix编程
编程是一门细致的工作,对于Unix下C语言编程来说更是如此。无论读者是因为兴趣爱好选择Unix编程,还是由于工作压力被迫选择Unix编程,耐心和细致都是必不可少的;另外熟能生巧是学习知识永远的捷径:
1. 勤操作,熟练Unix应用
很多第一次接触Unix的读者在编程时,常常有种无从下手的感觉,不是看不懂程序,或者不会编程序,而是不知道该如何进入Unix系统,不知道该如何编辑程序,也不知道该如何编译程序。的确,Unix编程初学者的瓶颈常常不是程序本身,而是诸如安装机器、安装系统软件和shell操作等一系列表面上与编程毫不相关的事务。所以熟练使用Unix的各种操作,可以大大提高Unix的编程效率。
事实上,Unix编程与Unix操作息息相关,初学者可以通过安装操作系统、安装数据库软件、安装文件系统、IPC控制、启停应用软件等各种操作增加自己的对Unix编程的理解。
Unix的基本操作见本书第$1.2小节,或者请查阅相关书籍。
【实践经验】只有真正熟练应用Unix操作系统的开发者才可以真正的理解Unix编程。
2. 勤编程,提高动手能力
眼高手低是人们学习时的特点之一,很多读者可能会遇上这样的疑惑:为什么书上的程序我都看得懂,可实际编程时就是不能灵活应用呢?其实这是一个熟练的过程,将书中的实例运行几次,把书后的习题解答几次,也许你会发现成功驾驭Unix编程不再是虚无飘渺的梦。数学家华罗庚曾经说的“苦战猛攻埋头干,熟练生出百巧来”就是这个道理。
本书的读者可以从以下几个方面实践:
(1) 学习书中实例,并且编译和执行之。
(2) 理解实例,举一反三,,并联系实践,思考实例在实践生产中的应用。
(3) 按部就班完成附录C中的《精通Unix下C语言编程100例》的代码。
【实际经验】虽然随书代码中会附带本书全部实例的源代码,但请读者务手工输入、编译并且执行全部程序。因为:
· 输入代码过程将加深记忆和理解。
· 手工输入过程中肯定会产生一些笔误,导致程序不能编译通过,或者不能正常运行;而对程序调试的过程其实就是一种最好的实践。
· 亲自输入代码并且测试通过,会产生一种成就感,极大地提高学习兴趣。
3. 多思考,举一反三掌握知识
在实际应用中,存在多种多样的情况,不是书中的实例可以穷尽的。因此读者在学习完一个实例后,可以根据所在企业的实际情况,编写出具有企业特色的实例来,即学习了Unix编程,又提前为实践生产做了准备。
总之,学习Unix编程最重实践,读者请务必亲自调试书中实例,完成书后习题,只有这样才能尽快到达“众里寻他千百度,暮然回首,那人却在灯火阑栅处”的境界。
拼图海报 http://www.biyinjishi.com/products/a65-b6510/d100121/
照片墙 http://www.biyinjishi.com/products/a65-b6510/d100122/
挂历 http://www.biyinjishi.com/products/a65-b6520/d100122
台历 http://www.biyinjishi.com/products/a65-b6520/d100122
普通台历 http://www.biyinjishi.com/products/a65-b6520/d100124/
创意台历 http://www.biyinjishi.com/products/a65-b6520/d100125/
高端台历 http://www.biyinjishi.com/products/a65-b6520/d100126/
分月挂历 http://www.biyinjishi.com/products/a65-b6520/d100127/
单张年历 http://www.biyinjishi.com/products/a65-b6520/d100128/
相册 http://www.biyinjishi.com/products/a65-b6530/d100128
简装照片书 http://www.biyinjishi.com/products/a65-b6530/d100130/
精装照片书 http://www.biyinjishi.com/products/a65-b6530/d100131/
高端照片书 http://www.biyinjishi.com/products/a65-b6530/d100132/
相册影集 http://www.biyinjishi.com/products/a65-b6530/d100133/
木版画 http://www.biyinjishi.com/products/a65-b6535/d100135/
水晶版画 http://www.biyinjishi.com/products/a65-b6535/d100136/
照片相框 http://www.biyinjishi.com/products/a65-b6535/d100137/
创意家居 http://www.biyinjishi.com/products/a65-b6550/d100137
杯子 http://www.biyinjishi.com/products/a65-b6550/d100139/