unix课程设计c语言,UNIX环境C语言编程.doc

UNIX环境C语言编程

第一章 概述

1.1 UNIX的版本??? UNIX操作系统是贝尔实验室于六十年代末用C语言研制开发的。经过几十年的发展,已经成为流行于从大型机、小型机

到工作站甚至微机等多种平台的操作系统。UNIX的成功同时也推动了C语言的普及。本教材的目的是讲解UNIX系统下的C程序设计,使C程序员快速掌握UNIX系统下的编程开发。作者在进行UNIX编程开发的实践过程中,深感实例的重要性,一个简短的C

语言实例往往胜过长篇累牍的文字说明,当然了,文字说明也是必不可少的。本教材将本着实例优先的原则,使您能够对

UNIX编程开发快速入门。

???? UNIX的版本不统一是出了名的,从UNIX的发展历史来看,主要有两大流派:AT&T的UNIX系统V版本和加州大学伯克利分

校的BSD版本,在此基础上,各家UNIX厂商均开发了各自的UNIX操作系统。如:工作站厂商中有 HP的hpux、SUN的solaris、SGI

的irix、IBM的AIX等,小型机有VAX上的Ultrix, 微机上有SCO UNIX、微软的Xenix以及随着Internet而风靡全球的Linux

等。由于Windows NT的异军突起,对UNIX的市场形成巨大的威胁,各大UNIX厂商不得不联合起来,在工作站市场上,统一以

系统V版作为标准,加入BSD版本中的一些优点,支持统一的CDE(Common Desktop Environment)窗口环境,以与Windows NT

进行对抗。1.2 UNIX编程环境??? UNIX操作系统通过Shell程序实现系统与用户的交互,在Shell提示符下,用户键入UNIX命令,即可得到操作系统的输出

结果。BSD系统的常用Shell是C Shell,缺省提示符是"%",系统V的常用Shell是Bourne Shell(现在多为Korn Shell),缺省

提示符是"$",有关Shell的编程,我们在后面的章节中进行介绍。?? UNIX上的标准编译器是cc。在Shell提示符下(以C Shell为例)键入下列命令:$ cc -o hello hello.c即将C文件hello.c编译为可执行文件hello。在编译多个文件生成一个可执行文件时,UNIX提供命令make。用户需要针对多个C文件,按照一定的格式编写一个叫做Makefile的文本文件。下面是SGI上的一个Makefile的例子:

CC = ccCFLAGS = $(DEBUG) -cckr -I$(INC)/X11 -DSYSVDEBUG = -gINC = /usr/includeLDFLAGS = -lXext -lXm -lXt -lX11 -lPW -lcOBJS = initx.o windowx.oTGTS = showxwinall:: $(TGTS)showxwin: $(OBJS)$(CC) -o $@ $(OBJS) $(CFLAGS) $(LDFLAGS)大写字母的字串是一些宏,CC是编译器的名字、CFLAGS定义cc的编译开关、DEBUG是调试宏、INC是头文件所在目录、

LDFLAGS定义了编译连接库、OBJ定义了目标文件名、TGTS定义了可执行文件名。在Shell提示符下直接键入:$ make即可将Makefile中指定的所有C文件进行编译并生成可执行文件。1.3 UNIX编程中的基本概念??? 在讨论UNIX编程开发前,首先需要阐明系统调用和库函数这两个概念。一个系统调用指一个需要操作系统代表用户程序来执行某些任务的请求。例如:read是一个系统调用,它请求操作系统存储在一个磁盘设备(或其他设备)上的数据去填充一个缓冲区。如果任何人在他们想执行任务的时候都能随便访问设备,那么后果将是不可预测的。所以,这种服务必须请求操作系统来做,它(经常是透明地)记录所有处理每个设备的请求。而一个库函数,并不经常需要操作系统来执行其任务。

例如数学库函数中的sin(),cos()等,这些计算只需要简单地对一个有限序列求和,所以并不需要操作系统干预。在UNIX操作系统中,有一个常用的命令man,可用来查阅命令、库函数和系统调用等的具体使用方法。传统 Unix联机帮助手册的分节法

为:

1 用户级命令(User-level commands)2 系统调用(System calls)3 库函数(Library functions)4 设备及驱动程序(Devices and device drivers)5 文件格式(File formats)6 游戏(Games)7 杂项(Various miscellaneous stuff - macro packages etc.)8 系统维护及操作命令(S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值