Linux程序设计--编程前你需要知道的基础知识

1 PATH变量

当登陆进Linux系统时你与一个Shell程序进行交互,它在一组特定的路径下进行指令的搜索,一般称为PATH环境变量,echo $PATH可以显示搜索路径。当以普通用户登陆时,系统的默认PATH路径为
/bin:二进制文件目录,一般存放系统启动时用到的程序
/usr/bin:用户二进制文件目录,用于存放用户使用的标准程序
/usr/local/bin:本地二进制文件目录,用于存放软件安装的程序

系统管理员(例如root用户)登录后,使用的PATH变量可能还包含存放系统管理程序的目录,如/sbin /usr/sbin
NOTE:
(1)Linux和Unix系统一样,使用冒号(:)分割PATH变量里的条目,而MS-DOS和Windows使用分号(;)
(2)Linux使用正斜线(/)分割文件名里的目录名,Windows使用反斜线(\)进行分割。

2 软件编程导引

1 应用程序

应用程序通常放在系统保留的特定目录中,包括用于程序开发的工具,一般放在/usr/bin /usr/local/bin /opt中。系统管理员喜欢放在/user/local /opt目录下,用于区分厂商提供的还是后续添加的。对于我们个人开发者,可以放在/home目录下的某个位置,方便使用。

2 头文件

系统级头文件一般存放于/usr/include目录及其子目录中。在调用C语言编译器时,需要指定自定义的头文件路径时,使用-I选项,如gcc -I/home/carl/helloworld hello.c -o hello

3 库文件

标准系统库文件一般存储在/lib /usr/lib目录中。库文件的名字总是以lib开头,随后的部分指明是什么库,最后是库类型。

.a 代表传统的静态函数库
.so 代表共享函数库

同调用外部头文件的方式,在调用C语言编译器时,需要指定自定义的库文件路径时,使用-L选项,如gcc -L/home/carl/helloworld hello.c -o hello

使用静态库,程序本身包含库中的函数代码,仅限库中被调用的函数。而使用动态库时,它的链接方式是这样的:程序本身不包含库函数代码,而是引用运行时可以访问的共享库。当编译好的程序加载到内存中运行时,函数引用被解析并去调用共享库,如果有必要,共享库才会被加载到内存中。

共享库好处:
(1)减少生成的可执行文件的大小。
(2)可以在系统中只保存一份共享库的副本供许多应用程序同时使用。
(3)共享库的更新可以独立于依赖它的应用程序。

可以通过ldd工具查看应用程序依赖的共享库,如ldd hello

猜你喜欢

转载自blog.csdn.net/yk150915/article/details/78936861