导航:首页 > 编程语言 > unix环境高级编程编译

unix环境高级编程编译

发布时间:2023-04-06 02:52:58

❶ Unix环境高级编程 调试程序

java必然有一些先行课,和先行知识
包括基本的逻辑运算,计算机基础原理比如冯诺依曼体系二进制之类内容,然后就是学习java的基本语法,这期间不需要使用集成开发环境,用记事本或者editplus就行,教材用约薄的越好,一定要java基础,语法都通了,就可以开始做碧漏一些能用的东西了,这个时候就可以用eclipse了(顺便说一下jdk不是开放工具,是一组java的基础类和编译调试程序,虽然名字叫jdk,java develope kit但是实际是堆类,跟.net framwork一样),有了eclipse(一般要搭配Myeclipse插件)就可以开发一些复杂的桌面应用了,这个时候要做的就是熟悉面向对象的思想,然后学习html,JavaScript,CSS这些网页基础知识

这些都准备好了就可以开始做传说中的J2EE程序了,所谓J2EE不是一个什么规范,他是jdk的另外一个版本,一般你下载的jdk叫做J2se就是java 2 standard edition,而j2ee是java 2 Enterprise edition,J2EE的develope kit用Myeclipse就行,里面有web工程都不用你操心了,当你开发j2ee工程时候需要用到一个容器来解析j2ee(就如同j2se的套件里面有编译工具一样)这个容器最方便的就是tomcat了

然后是UNIX,你根本不用学,在xp上开发好到unix就可以,跨平台,只要unix上装了unix的java虚拟机就能直接用了,如果要学的推荐使用VMware这个东西,可以在xp上虚拟出unix,linux,甚至是mac,而且最新版的VMware据说可以同时开4,5个虚拟操作系统都不会死机

推荐书,按我说的顺序先看基础,任何出版社都ok,然后看比基础后一些的(如果不想做桌面应用跳过也可以),然后看j2ee教程,最好有案例那种,哪本都可以,讲的都挺详细,然后专项看struts,Hibernate,spring的书

解释一下上面说那些词(其实你踏实下来看书都能找到答案,书里都会说)mvc是sun公司发明的一种编程的方式,就是做软件时候按照3曾来分类,m是modal模型层主要负责描述一些实例的属性并且留出粗好对应的公共set,get方法,v是view视图层,用来给用户看的,c是控制层,控制一些方法去岩慧铅对m曾里的实例进行增删改查等操作

ant是一套部署工具,一般你调试以后要把工程部署一下,如果每次都手工做就太笨了,所以发明了ant

ejb是sun公司出的一套框架Enterprise java bean,到3.0以后才有人用,而且功能和ssh效果差不多,不多说了

“ssh=struts,hibernate,spring, 三个框架”引用别人说的,这个正确

struts是一个mvc框架,主要用jsp做视图层,struts的action类做控制层,struts的formbean做模型层(不过自己也要建立模型层方便和数据库交互)

hibernate是一套数据库持久化框架模型,用法也很简单,在Myeclipse里都集成了,没有特殊需求都用IDE生成就可以了,不过真实项目里生成好的要自己改一些地方才能用

spring是一套面向刻面和反转控制的框架,至于这两个是什么英文叫AOP和Ioc不赘述了,网上搜搜很多,而且看spring的书第一张一定会说这个

log4j是一套记录日志的java组件,用不用都行,struts里都集成了

cvs是做版本控制的一个工具Myeclipse里集成了

junit是一套用来做单元测试的工具类,Myeclipse里也集成比较复杂,不过以后到公司了,公司都会安排你来做测试,到时候他们怎么要求怎么做,中国的破公司很多都不做测试,跑通了就ok了

❷ UNIX环境高级编程的介绍

《UNIX环境高级编程》是2006年由人民邮电出版社出版的图书,作者是(美)理乍得·史蒂文斯、(美)拉戈,译者是张亚英、戚正伟。本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版的风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。

❸ 《unix环境高级编程》程序1-1,编译提示错误:提领指向不完全类型的指针

设置问题的原因!

❹ 到什么程度才叫精通Linux

许多同学触摸Linux不多,对Linux渠道的开发更是一窍不通。而如今的趋势越来越标明,作为一个优秀的软件开发人员,或计算机IT职业从业人员,把握Linux是一种很主要的营生资本与手法。

下来我将会结合自己的几年的个人开发经验,及对 Linux,更是类UNIX系统,及开源软件文化,谈谈Linux的学习方法与学习中应该注意的一些事。

就如同刚才说的,很多同学以前可能连Linux是什么都不知道,对UNIX更是一无所知。所以我们从最基础的讲起,对于Linux及UNIX的历史我们不做多谈,直接进入入门的学习。

Linux入门是很简单的,问题是你是否有耐心,是否爱折腾,是否不排斥重装一类的大修。没折腾可以说是学不好Linux的,鸟哥说过,要真正了解Linux的分区机制,对LVM使用相当熟橡滑练,没有20次以上的Linux装机经验是积累不起来的,所以一定不要怕折腾。

由于大家之前都使用Windows,所以我也尽可能照顾这些“菜鸟”。我的推荐,如果你第一次接触Linux,那么首先在虚拟机中尝试它。虚拟机我推荐Virtual Box,我并不主张使用VM,原因是VM是闭源的,并且是收费的,我不希望推动盗版。当然如果你的Money足够多,可以尝试VM,但我要说的是即使是VM,不一定就一定好。

付费的软件不一定好。

首先,Virtual Box很小巧,Windows平台下安装包在80MB左右,而VM动辄600MB,虽然功能强大,但资源消耗也多,何况你的需求Virtual Box完全能够满足。所以,还是自己选。

如何使用虚拟机,是你的事,这个我不教你,因为很简单,不会的话Google或Bai都可以,英文好的可以直接看官方文档。现在介绍Linux发行版的知识。

正如你所见,Linux发行版并非Linux,Linux仅是指操作系统的内核,作为科班出生的你不要让我解释,我也没时间。

我推荐的发行版如下:

UBUNTU 适合纯菜鸟,追求稳定的官方支持,对系统稳定性要求较弱,喜欢最新应用,相对来说不太喜欢折腾的开发者。

Debian,相对UBUNTU难很多的发行版,突出特点是稳定与容易使用的包管理系统,缺点是企业支持不足,为社区开发驱动。

Arch,追逐时尚的开发者的首选,优点是包更新相当快,无缝升级,一次安装基本可以一直运作下去,没有如UBUNTU那样的版本概念,说的专业点叫滚动升级,保持你的系统一定是最新的。缺点显然易见,不稳定。同时安装配置相对Debian再麻烦点。

Gentoo,相对Arch再难点,考验使用者的综合水平,从系统安装到微调,内核编译都亲历亲为,是高手及黑客显示自己技术手段,按需配置符合自己要求的系统的首选。

Slackware与Gentoo类似。

CentOS,社区维护的RedHat的复刻版本,完全使用RedHat的源码重新编译生成,与RedHat的兼容性在理论上来说是最好的。如果你专注于Linux服务器,如网络管理,架站,那么CentOS是你的选择。

LFS,终极黑客显摆工具,完全从源代码安装,编译系统。安装前你得到的只有一份文档,你要做的就是照文档你的说明,一步步,一条条命令,一个个软件包的去构建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,证明你的Linux功底已经相当不错,如果你能拿LFS文档活学活用,再将Linux从源代码开始移植到嵌入式系统,我敢说中国的企业你可以混的很好。

1、Linux基础

你得宏如尺挑一个适合你的系统,然后在虚拟机安装它,开始使用它。如果你想快速学会Linux,我有一个建议就是忘记图形界面,不要想图形界面能不能提供你问题的答案,而是满世界的去找,去问,如何用命令行解决你的问题。

在这个过程中,你最好能将Linux的命令掌握的不错,起码常用的命令得知道,同时建立了自己的知识库,里面是你积累的各项知识。

2、Linux平台的C/C++开发,同时还有Bash脚本编程[JAVA]

再下个阶段,你需要学习的是Linux平台的C/C++开发,同时还有Bash脚本编程,如果你对Java兴趣很深还有Java。同样,建议你蔽高抛弃掉图形界面的IDE,从VIM开始,为什么是VIM,而不是Emacs,我无意挑起编辑器大战,但我觉得VIM适合初学者,适合手比较笨,脑袋比较慢的开发者。 Emacs的键位太多,太复杂,我很畏惧。然后是GCC,Make,Eclipse(Java,C++或者)。

虽然将C++列在了Eclipse中,但我并不推荐用IDE开发C++,因为这不是Linux的文化,容易让你忽略一些你应该注意的问题。 IDE让你变懒,懒得跟猪一样。如果你对程序调试,测试工作很感兴趣,GDB也得学的很好,如果不是GDB也是必修课。这是开发的第一步,注意我并没有提过一句Linux系统API的内容,这个阶段也不要关心这个。你要做的就是积累经验,在Linux平台的开发经验。

我推荐的书如下:C语言程序设计。 C语言,白皮书当然更好。 C++推荐 C++ Primer Plus, Java我不喜欢,就不推荐了,附一个别人的书单:java 入门书籍。工具方面推荐VIM的官方手册,GCC中文文档,GDB中文文档,GNU开源软件开发指导(电子书),汇编语言程序设计(让你对库,链接,内嵌汇编,编译器优化选项有初步了解,不必深度)。

如果你这个阶段过不了就不必往下做了,这是底线,最基础的基础,否则离开,不要霍霍Linux开发。不专业的Linux开发者作出的程序是与Linux文化或UNIX文化相背的,程序是走不远的,不可能像Bash,VIM这些神品一样。所以做不好干脆离开。

3、UNIX环境高级编程

UNIX环境高级编程堪称神作,经典中的经典。

接下来进入Linux系统编程,不二选择,APUE,UNIX环境高级编程,一遍一遍的看,看10遍都嫌少,如果你可以在大学将这本书翻烂,里面的内容都实践过,有作品,你口头表达能力够强,你可以在面试时说服所有的考官。

(可能有点夸张,但APUE绝对是圣经一般的读物,即使是Windows程序员也从其中汲取养分, Google创始人的案头书籍,扎尔伯克的床头读物。)

这本书看完后你会对Linux系统编程有相当的了解,知道Linux与Windows平台间开发的差异在哪?它们的优缺点在哪?我的总结如下:做Windows平台开发,很苦,微软的系统API总在扩容,想使用最新潮,最高效的功能,最适合当前流行系统的功能你必须时刻学习。 Linux不是,Linux系统的核心API就100来个,记忆力好完全可以背下来。而且经久不变,为什么不变,因为要同UNIX兼容,符合POSIX标准。所以Linux平台的开发大多是专注于底层的或服务器编程。

这是其优点,当然图形是Linux的软肋,但我站在一个开发者的角度,我无所谓,因为命令行我也可以适应,如果有更好的图形界面我就当作恩赐吧。另外,Windows闭源,系统做了什么你更本不知道,永远被微软牵着鼻子跑,想想如果微软说Win8不支持QQ,那腾讯不得哭死。而Linux完全开源,你不喜欢,可以自己改,只要你技术够。

另外,Windows虽然使用的人多,但使用场合单一,专注与桌面。而Linux在各个方面都有发展,尤其在云计算,服务器软件,嵌入式领域,企业级应用上有广大前景,而且兼容性一流,由于支持POSIX可以无缝的运行在UNIX系统之上,不管是苹果的Mac还是IBM的AS400系列,都是完全支持的。另外,Linux的开发环境支持也绝对是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就连C#也支持。而微软除Visual Stdio套件以外,都不怎么友好,不是吗?

如果你看完APUE的感触有很多,希望验证你的某些想法或经验,推荐UNIX程序设计艺术,世界顶级黑客将同你分享他的看法。

4、选择方向:网络,图形,嵌入式,设备驱动

网络方向:服务器软件编写及高性能的并发程序编写

现在是时候做分流了。大体上我分为四个方向:网络,图形,嵌入式,设备驱动。

如果选择网络,再细分,我对其他的不是他熟悉,只说服务器软件编写及高性能的并发程序编写吧。相对来说这是网络编程中技术含量最高的,也是底层的。需要很多的经验,看很多的书,做很多的项目。

我的看法是以下面的顺序来看书:

APUE再深读– 尤其是进程,线程,IPC,套接字

多核程序设计- Pthread一定得吃透了,你很NB

UNIX网络编程– 卷一,卷二

TCP/IP网络详解– 卷一再看上面两本书时就该看了

5.TCP/IP 网络详解– 卷二我觉得看到卷二就差不多了,当然卷三看了更好,努力,争取看了

6.Lighttpd源代码- 这个服务器也很有名了

7.Nginx源代码– 相较于Apache,Nginx的源码较少,如果能看个大致,很NB。看源代码主要是要学习里面的套接字编程及并发控制,想想都激动。如果你有这些本事,可以试着往暴雪投简历,为他们写服务器后台,想一想全球的魔兽都运行在你的服务器软件上。

Linux内核 TCP/IP协议栈– 深入了解TCP/IP的实现

如果你还喜欢驱动程序设计,可以看看更底层的协议,如链路层的,写什么路由器,网卡,网络设备的驱动及嵌入式系统软件应该也不成问题了。

当然一般的网络公司,就算网络级别的也该毫不犹豫的雇用你。只是看后面这些书需要时间与经验,所以35岁以前办到吧!跳槽到给你未来的地方!

图形方向,我觉得图形方向也是很有前途的,以下几个方面。

Opengl的工业及游戏开发,国外较成熟。

影视动画特效,如皮克斯,也是国外较成熟。

GPU计算技术,可以应用在浏览器网页渲染上,GPU计算资源利用上,由于开源的原因,有很多的文档程序可以参考。如果能进火狐开发,或google做浏览器开发,应该会很好。

嵌入式方向:嵌入式方向没说的,Linux很重要。

掌握多个架构,不仅X86的,ARM的,单片机什么的也必须得懂。硬件不懂我预见你会死在半路上,我也想走嵌入式方向,但我觉得就学校教授嵌入式的方法,我连学电子的那帮学生都竞争不过。奉劝大家,一定得懂硬件再去做,如果走到嵌入式应用开发,只能祝你好运,不要碰上像Nokia,Hp这样的公司,否则你会很惨的。

驱动程序设计:

软件开发周期是很长的,硬件不同,很快。每个月诞生那么多的新硬件,怎么让他们在Linux上作业起来,这是你的作业。由于Linux的兼容性极好,假如不是太低层的驱动,根本C言语就能够搞定,体系架构的影响不大,由于有体系支撑,你可能做少许更改就能够在ARM上运用PC的硬件了,所以做硬件驱动开发不像嵌入式,对硬件常识的请求很高。

能够娴熟的建立常见的效劳,lnmp,ftp,dns,smba,假如呈现毛病,能够及时的排除去。。。常常运用Linux,必定能够变成大神。

原文链接:http://www.mage.com/71706.html

❺ 《UNIX环境高级编程》这本书怎么看怎么学习

W.Richard Stevens 先生所着之书比较适合有经验的人进一步深入学习

W.Richard Stevens 先生所着的UNIX 环境高级编程、UNIX网络编程、TCP/IP详解是难得的入门好书,但这里的入门指得是研究生级别的入门。Stevens 先生所着之书多半是为了给研究生上课时用做教材,因此 Stevens 先生假设阅读这些书的人至少已经接受过了系统的计算机技术本科教育,已经拥有了比较系统的计算机相关基础理论知识。在书中 Stevens 先生假设读者拥有了最基础的操作系统理论,网络技术理论,以及UNIX理论和实践经验,并拥有数种业界常用的UNIX系统作为学习环境(在国外的大学里很容易获得),这样才能体会书中所述的细节。因此这些书刚接触时看似通俗易懂,但在阅读细节上却对读者要求甚高,如果没有足够的专业理论和系统饥野实践是很难真正读进去的。

所以,对于没有接受过系统的计算机专业教育的爱好者,或者主要以 linux 系统维护,或以linux 桌面应用为主的普通用户,Stevens 先生的书并不是很合适的阅读对象。

因此,就我个人的看法,掌握任何一种知识都是需要投入的。我们需要花费金钱去得知识来源(花钱买书,花钱上网,花钱培训),需要花费宝贵的时间去阅读(人生匆匆几十年,没多少时间可以给我们去浪费),需要花费精力去理解书中的内容(基础知识越扎实,理解所学内容越快,但累积基础同样需要大量时间和精力),需要找到合适的环境(光看不实践心里是不会有底的)去验证自己掌握的东西。因此,如果在决定投入之前,先要摸清楚自己到底想要达到什么样的目标,这个目标是否切合自己的实际(相信一个在流水线上辛苦劳作的普通工人,即使学会了计算机编程也是没有用武之地的,除非他有机会离开流水线)。自己是否有足够的资源承载自己的理想(如对于温饱问题尚未解决之人,要他花上千上万的钱去学MBA显然是不现实的)。

同时,任何一本书都会对读者提出一个基本的知识架构和程度上的要求,比方说即使是文学博士,让他去读高能物理学方面的书也会要他的命的。因此在选择所读之书前,先要对自己的实际能力做一次详细的评估,看自己目前到了哪种阶段,是否有能力带此去掌握自己想要掌握的东西。千万不要因为好高骛远而勉力为之。选择适合自己当前水平的书去阅读并理解,远好过拿着大师所着的神作干瞪眼。

如果主要希望掌握UNIX下的编程技术,尤其是网络编程技术的话,可以有两条路走:

1、以实际需要完善知识架构:为自己做一个项目,比方说自己写个简单的 Web 服务器,因为现在 Web 应用非常丰富,既有成熟的客户端如浏览器可以配合,又有足够全的文档如 RFC文档可供参考,再加上最基本的 socket 编程经验,就可以开始做自己的 Web 服务器。一步一步的为 Web 服务器添加流行的功能,如支持后台 FastCGI 接口,支持 WebDAV,支持流媒体等。在这个过程中不断地学习和掌握相关的理论知识,有时在发觉设计上的不足时甚至需要推翻全盘重新架构。当最终一个完全符合自己心意且足够实用的 Web 服务器做成时,就拥有了可以由自己支配和修改的服务器,同时也掌握了相关的专业理论。这种方式比较适合有一定专业基础的人使用。优点是直观,方向明确所以学习效率高。缺点是需求驱动,形成知识架构不容易完整。

2、系统掌握计算机专业理论:最好的书就是大学里的理论教科书,这些书不会去讲解过于具体的计算机应用,而是从概念开始讲起,力图使学习者获得一个完整的知识体系。只要以后碰到的工作和这个知识体系相关,自然就能很快学会。这种方式比较适合没有基础,或者希望深入学习的人使用蠢肢迅,优点是知识架构会逐渐趋于完整,理论功底扎实,后劲足。缺点是花费时间长,方向不明确所以学习效率低,初期会因缺少实践而进展缓慢。

❻ Unix环境高级编程书上的第一个例程如何运行(附代码)

你这根本是跳着看书,这个apue.h是包含了非常多的头文件的,在附录里有,前面也说明了,你跑程序怎么可以也用这个头,你根本没这个文件

❼ 高级编程 UNIX

就是说尽管操作系统底层 I/O 支持 64bit文件偏移量,但该 unix 系统使用的具体的文件系统类型比如 JFS, JFS2,VFS,UFS 等对文件的大小都有具体的约定,某些文件系统是不支持大于 2TB 的文件。

❽ C语言学习路线

一,UNIX下C语言的学习路线。
工具篇
“公欲善其事,必先利其器”。编程是一门实践性很强的工作,在以后的学习或工作中,将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具。
(一)操作系统
在UNIX或Linux系统中学习C很方便,所以在开始的学习旅程前请先选择一个UNIX或Linux操作系统。
目前可供个人免费使用的UNIX或Linux系统有FreeBSD、RedHat Linux、SUSE Linux等,而且在安装包中还提供很多实用的工具,如:gcc, make等。
如果您一直使用Windows,身边又没有多余的机器安装UNIX,则可以使用VMware,通过VMware安装虚拟系统。
(二)编译工具
目前绝大多数Unix或Lnux系统都提供CC或GCC编译器,最简单的cc命令格式如下:
cc -o hello hello.c
在unix shell环境中敲入上面的代码会将hello.c程序编译成可执行文件hello。
make 工具如 GNU make、System V make 和 Berkeley make 是用来组织应用程序编译过程的基本工具,但是每个 make 工具之间又有所不同。
大部分UNIX和Linux程序都是通过运行make来编译的。make工具会读取一个包含指令的文件(这个文件的名字通常都是 makefile 或 Makefile,不过后文中统一称之为 “makefile”),并执行各种操作来编译程序。
(三)调试工具
最简单的调试工具:为程序添加打印语句
在对程序的运行机制有了一定的了解后,可以实用一些工具帮助进行调试,当然得学习一下这些工具得使用,如:dbx,gdb等。
还有一些内存工具可以帮查找内存泄漏或缓冲区溢出等一些问题,如:memwatch,yamd等
(四) 其他工具
1. vi或vim
Unix下文本编辑器。主要靠一堆命令来编辑文本文件,学Unix编程最好熟悉并熟练使用vi编辑器。
当然在实际工作中,可能需要一个集成编码环境或一个功能强大的图形化编辑工具。
2.netterm
最着名的网络终端软件之一,可以使用它方便的连接到主机系统中。
3.Secure shell
一个支持ssh协议得客户端工具,多数情况下用来连接linux系统。
书籍篇
“书是人类进步得阶梯”。学习一门新的知识,当然要选择几本适合自己得书籍,下面介绍一些我自己学习C语言使用过的书籍:
1.《C primer plus》
推荐理由:适合作为入门书和基本函数查询得参考资料。本书最新版为第五版,以ANSI C99为标准详细介绍了C语言。
2.《The C programming_Language》
推荐理由:C语言之父得作品权威性毋庸置疑。虽然书籍出版时间比较老,好像也没更新,不过仍不失为经典书籍,网上有这本书得英文电子版提供下载。
3.《C 专家编程》
推荐理由:本书可以帮助有一定经验的C程序员成为C编程方面的专家,最关键的是本书寓教于乐,充分享受编程的乐趣。
4.《C缺陷与陷阱》
推荐理由:书中所揭示的知识能帮助绕过C语言自身得陷阱和缺陷,减少代码中许多常见的Bug。
5.《unix环境高级编程》
推荐理由:既然是UNIX环境下C编程,就不得不说说UNIX编程书籍。Stevens先生的《unix环境高级编程》是竭力推荐的,也是案头必备(如果对网络编程有兴趣的,可以学习一下Stevens先生的《UNIX网络编程》两卷,如果觉得还不过瘾,可以再看看《TCP/IP详解》三卷)。
6.《计算机编程艺术》
推荐理由:算法大师得呕心沥血之作。计划出版五卷书,目前好像已出版3卷。对算法有兴趣得可以研究一下。
过程篇
1.学习C语法
语法的学习对于一个具有编程底子的来说,就很轻松了;即使以前没有学习过其他编程语言,我相信有2个星期,也能轻松搞定。
需要注意的是,不要太纠缠于语言的细节,比如:运算符优先级与结合性的问题等。
2.学习C标准库
ANSI C库把函数分为不同的组,每个组都具有与之相关的头文件。C语言标准库相对于其他语言,比如C++,Java来说是非常短小精悍的,但首先应着重对以下库进行学习:
ctype.h:字符处理
math.h:数学库
stdio.h:标准I/O库
stdlib.h:通用工具库
string.h:字符串处理
time.h:时间和日期
如果想了解完成的ANSI C库,可以购买相关的书籍,这些书籍一般会详细介绍每个函数的用户和一些注意点;
3.攻克C的难点
C语言声明:
C语言的声明确实觉得恐怖,比较晦涩难懂,而且声明的形式和使用的形式还类似。比如如下的声明恐怕就连很多熟悉C多年的程序员也不是一眼就能看出来的:
char * const * (*next)();
那么有没有一种好的记忆方法或规则来搞清楚呢,好像没有,如果有的话也不是这样折磨人了。不过可以看看《C专家编程》第三章的内容,或许会有所收获。
也只能多学多练了,所谓熟能生巧嘛,希望这个问题不要在你的心灵上留下阴影。
数组与指针:
数组与指针的关系,在标准中并没有作很详细的规定,而且好多C入门的书籍在这个问题上并没有给出很详细的说明,所以会给人造成很多误解。
对于这个问题,可以参考《C缺陷与陷阱》4.5节和《C专家编程》第4,9,10章,相信这里面的内容搞透彻,以后就不会再被这个问题搞迷惑。
指针与内存:
如果以后编写规模较大的程序,可能发现这个问题可能会是最大的烦恼,而且可能会是消耗最多调试时间的事项。
C版本的问题:
得特别小心该问题,最好不要的程序中混合使用不同版本C的特性,否则会带来很迷惑的问题。如果一定要用,最好清楚自己在做什么。
4. UNIX环境编程
学习了以上内容之后,就可以进行unix环境编程了。不过可能需要对操作系统理论有一点点的了解,这样学起来会比较轻松一些。
Unix环境编程,应该着重IO和进程两大块内容。《Unix环境高级编程》中对Unix环境编程有着非常详细且深入的论述,而且书中有大量实用性例子程序,不过可能得花上几个月得时间,好好啃一啃了。
在扎实掌握以上内容,不代表得C语言学习支路已经完成,相反,才刚刚开始。以后需要用学到得知识去解决大量不同实际问题,在不断得实践过程中,会近一步加深对C的理解。有了以上基础之后,会发现,在实践过程中需要的其他知识,会非常快速的掌握。
二,Windows程序员的学习路线
1.当然要熟悉下C语言了 入门可以选用潭浩强的 《C程序设计》(当然最好能读C Programming Language)特别要对其中的指针,结构体等东西一定要搞清楚了(要学好的很好至少要花费一个月时间) 为什么要从C开始呢:<1> C好学 <2> 大多数的操作系统核心部分是用C开发的 <3> C的效率高且语言成熟
2.在1的基础之上一定要认真学习一下数据结构 对C++程序员来说良好的数据结构可以让一个程序员很轻松的完成程序设计 糟糕的数据结构可以把一个程序员累死 推荐书籍:严蔚敏的《数据结构(C语言版)》或北京大学的一本中C++版的数据结构 书中说到的每个主体在程序设计中都会用到 认真学好会对的以后的C++程序设计有太多的好处 (3个月时间)
3.学好了2之后可以学习下《C++ PROGRAM DESIGN》这本书初步介绍了C++和如何使用C++写出Windows下的程序(要学好至少要花费3个月时间)
4.在3的基础之上可以读一本叫《Windows 95 程序设计》(它的最新版本是Programming Windows)这是一相Windows程序设计的领域的不朽之作(3个月时间) 通过2和3的学习已经成为了一个可以设计Windows程序的程序员了 要想更好的设计Windows程序设计 一定要借助框架结构不可 为什么:框架结构可以加快我们程序设计的速度 虽然使用框架使得我们的程序的效率低了那么一点 但随着当今计算机的运算能力的提升,不会感觉到这一点点的性能损失的反而会因为你使用的框架结构而使你的程序设计加快了速度 使用框架结构才算一个真正的VC++程序员
5.在4的基础之上可以看一些简单的MFC程序设计的书比如《Visual C++入门教程》之类的图书 这可以使你能写出一些带有通用控件的MFC程序 (1个月时间)
6.在5的基础之上已经可以很快开发一个软件了 但不了解MFC框架运行机制是很不好的 了解MFC的运行机制可以使以后的MFC程序设计工作做的更好 推荐书籍侯杰的《深入浅出MFC》 但这本书真的不适合初学者当你有了一定的开发经验以后这本书对来说确实很好 若很熟悉Windows下的SDK程序设计并打算或已经开始使用MFC进行软件开发 那这本书对来说再好不过了 (2个月时间)
7.在6的基础之上可以看下这本书《VC++技术内幕》由潘爱民译的 推荐看原着(3个月)
8.在以上基础之上为了更好的使用VC++这个工具 推荐看一下《VC++6.0宝典》(3个月) 从开发工具的角度讲这本书写的很好
9.为了更好的工作可以参考一下VC++程序设计百例
10.之后可以看一下《Windows核心编程》 这本书很好的讲解了Windows的编程 对你写系统程序很有好处的 推荐看原版
11.只了解其形不算真正的了解 之后还要认真的读一下Windows的内核源码 相信WRK 很容易找到的 可以配合《深入解析Windows操作系统》《Windows内核原理与实现》和《Windows内核情景分析》
12.其它一些东东《COM原理》(潘爱民) OpenGL D3D VC的数据库编程 图形图像 音视频处理和网络都要有所了解和会使用
13.要做到一个好的程序员一定要对驱动程序有所了解所以写一个文件驱动之类的东东是很有必要的
14.经过以上各步的学习完全成为一个优秀的Windows程序员了(前提是每一步要学好)
15.漏了一些重要的东东 编译原理 汇编及 组成原理 和设计模式等也是很重要的东东 只有学好了这些才能明白语言为什么要这样组织才能高效。

❾ UNIX环境高级编程

ubuntu是可以的。编译环境的话装好ubuntu之后就自带了,你可以打开终端输入gcc -v就知道你的编译器版本了。还有你可能需要装其他的库文件。
那本书的话建议你在没有了解linux系统的时候,最好从基础开始学起,不管怎么说,里面需要熟悉很多linux的命令,尽管他的名字是《 UNIX环境高级编程》,但是他在序言里面说了,第二版的书涉及linux。
你最好还是去了解一下系统的命令怎么用,然后再去学习。

❿ 如何理解unix环境高级编程中的阻塞与挂载

Stevens着有三大本:UNIX环境高级编程、TCP/IP详解、UNIX网络编程。
我是抱着学习网络编程进而阅读web framework源码来学习它们的。
另外也是想提升一下握大自己的编程素养,为以后亏皮简看kernel源码什么的做铺垫。

销裤首先我是买了这本书,另外两套暂时没买。
开始也是各种不解,我就是想内核究竟干些啥事,如何通过system_call与之通信?

其实读这些书需要一些基础的。
操作系统原理、gcc、shell等等。

其实我也没全看完,建议先把环境装好(编译apue.h),然后一个一个运行书中示例。当然不是盲目的学,要知道自己差那一块就补那块。

阅读全文

与unix环境高级编程编译相关的资料

热点内容
linuxftp自动登录 浏览:802
运行编译后网页 浏览:70
阅读app怎么使用 浏览:319
centos防火墙命令 浏览:432
命令行变更 浏览:332
linux设备和驱动 浏览:207
加密货币骗局破案 浏览:345
cc特征码加密 浏览:775
清空dns缓存命令 浏览:295
文件夹单击右键一直转圈 浏览:820
天天玩乐园是哪个app 浏览:395
单片机数码管动态显示效果图 浏览:874
备用dns服务器地址可以调吗 浏览:267
ad剑魔和app哪个好 浏览:865
java的undefined 浏览:813
列表的合并与排序python代码 浏览:324
编译原理英文版pdf下载 浏览:951
c单片机pdf 浏览:827
adb下载命令 浏览:126
安卓怎么打开pdf 浏览:108