红联Linux门户
Linux帮助

LINUX程序设计第三版学习笔记

发布时间:2007-05-21 09:38:10来源:红联作者:Magnate
1.LINUX程序:

LINUX的应用程序表现为两种形式----可执行文件和脚本文件。可执行文件是指计算机可以直接运行,相当于WINDOWS中的.exe文件;脚本文件是一组指令的集合,这些指令由另一个程序(即解释器)来执行,相当于WINDOWS中的.bat文件等。

我们登录LINUX后,通常与一个SHELL程序交互,很类似与WINDOWS中的命令行,在SHELL命令中运行程序的时候,它将在一组给定的目录下搜索与所运行的程序名相同的文件,这些给定的目录是保存在环境变量PATH中的:例如

/bin 二进制文件目录 用于保存系统启动时用到的二进制文件

/usr/bin 用户二进制文件目录 存放用户使用的标准程序

/usr/local/bin 本地二进制目录 存放特定软件安装的程序

系统管理员(例如root用户)登录后使用的PATH变量还包含存放系统管理程序的目录,如/sbin和/usr/sbin。

注意,Linux像UNIX一样,使用冒号(:)分隔PATH变量里的条目,而不是像MS-DOS和Windows使用分号(;)。Linux用正斜线(/)分隔文件名里的目录名,而不是像Windows那样用反斜线(\)。(别混淆哦!)

2.C语言编译器

需了解:在POSIX兼容的系统中,C语言编译器被称为c89。历史上,C语言编译器被简称为cc。许多年来,不同厂商销售的类UNIX系统中所带的C语言编译器均包含不同的功能和选项,但它们一般都称为cc。

在准备起草POSIX标准时,事实上已经不可能制订出兼容所有厂商的标准cc命令了。于是,POSIX委员会决定为C语言编译器创建新的标准命令,这就是c89。只要使用这个命令,则在任何机器上,它的编译选项都相同。

Linux系统尽量实现这些标准。在Linux系统中,你会发现c89、cc和gcc这些命令全部或部分地指向系统的C语言编译器,通常是GNU C编译器,或者简称gcc。在UNIX系统中,C语言编译器几乎总被称为cc。

我们将使用gcc,这是因为它随Linux的发行版一起提供,并且它支持ANSI C的标准语法。

3.我们的第一个LINUX程序哦!划时代的意义啊!

hello.c

#include

#include

int main()

{

printf("hello world\n");

exit(0);

}

需要用一个编辑器来输入这个程序。在典型的Linux系统上有许多编辑器可用,较流行的编辑器是vi。同时建议你花一点时间来学习emacs这个功能强大的编辑器哦。

编译,链接和运行我们的程序!

$ gcc -o hello hello.c

$ ./hello

hello world

$

C语言编译器(在Linux中大多数情况下用cc也可以)将我们的C语言源代码转换为可执行文件hello。

因为这是我们运行的第一个程序,所以有些问题最好现在就指出来。hello程序很可能在你的主目录中。如果PATH变量不包含指向你的主目录的条目,shell就找不到hello程序。更进一步,如果PATH变量中的目录包含另一个名为hello的程序,就会执行那个程序。如果PATH中这样的目录出现在你的主目录之前,也会发生这种情况。为了避免这种潜在的问题,我们在程序名前加上一个./(例如./hello)。它特别指示shell去执行当前目录下给定名称的程序。

如果你忘记用-o name选项告诉编译器将可执行程序放在何处,编译器则会把程序放在一个名为a.out的文件里(a.out的含义是assembler
output,即汇编输出)。如果你确信编译了一个程序但又找不到它,别忘了看看有没有a.out文件!在UNIX的早期历史中,想在系统上玩游戏的人通常把游戏作为a.out来运行,以避免被系统管理员捉到,一些UNIX系统安装每晚会定期地删除所有名为a.out的文件。
文章评论

共有 0 条评论