Linux 软硬链接详解】的更多相关文章

软链接 软链接: 类似于windows的快捷方式,—>文本文件,但是包含了真实文件的地址               源文件删除,则软连接也删除               软链接可以放在任何文件系统               目录可以创建软连接 --> 和源文件不同的文件,因为软连接目录可以放在任何地方 命令:[root@localhost omc]# ln -s ftl/ ftl.soft (第一个参数表示源文件,inittab.soft表示快捷方式) 查看:[root@localhos…
Linux文件属性及类型 [root@localhost ~]# ll anaconda-ks.cfg 文件类型 权限 硬连接数 文件的大小 文件的创建,修改时间 - rw-------. 1 root root 1379 3月 12 17:43 anaconda-ks.cfg [root@localhost ~]# ll -d zls 文件类型 权限 硬连接数 所属用户 所属用户组 文件的大小 文件的创建修改时间 d rwxr-xr-x. 2 root root 6 3月 12 18:00 文…
1.序 Linux具有为一个文件起多个名字的功能,称为链接.被链接的文件可以存放在相同的目录下,但是必须有不同的文件名,而不用在硬盘上为同样的数据重复备份.另外,被链接的文件也可以有相同的文件名,但是存放在不同的目录下,这样只要对一个目录下的该文件进行修改,就可以完成对所有目录下同名链接文件的修改.对于某个文件的各链接文件,我们可以给它们指定不同的存取权限,以控制对信息的共享和增强安全性.文件链接有两种形式,即硬链接和符号链接.ln命令用来为文件创建链接,连接类型分为硬链接和符号链接两种,默认的…
3静态库 摘自:Linux C编程一站式学习 透过本节可以学会编译静态链接库的shell脚本! 有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后要讲到的environ变量).本节介绍怎么创建这样一个库. 我们继续用stack.c的例子.为了便于理解,我们把stack.c拆成四个程序文件(虽然实际上没太大必要),把main.c改得简单一些,头文件stack.…
4. 共享库 4.1. 编译.链接.运行 组成共享库的目标文件和一般的目标文件有所不同,在编译时要加-fPIC选项,例如: $ gcc -c -fPIC stack/stack.c stack/push.c stack/pop.c stack/is_empty.c -f后面跟一些编译选项,PIC是其中一种,表示生成位置无关代码(Position Independent Code).那么用-fPIC生成的目标文件和一般的目标文件有什么不同呢?下面分析这个问题. 我们知道一般的目标文件称为Reloc…
1. 多目标文件的链接 摘自:linux c编程一站式学习 http://learn.akae.cn/media/index.html 可以学会在linux下将多个c语言文件一起编译. 现在我们把例 12.1 “用堆栈实现倒序打印”拆成两个程序文件,stack.c实现堆栈,而main.c使用堆栈: /* stack.c */ char stack[512]; int top = -1; void push(char c) { stack[++top] = c; } char pop(void)…
2定义和声明 摘自:linux c编程一站式学习 可以学会extern和static用法,头文件知识. 2.1. extern和static关键字 在上一节我们把两个程序文件放在一起编译链接,main.c用到的函数push.pop和is_empty由stack.c提供,其实有一点小问题,我们用-Wall选项编译main.c可以看到: $ gcc -c main.c -Wall main.c: In function ‘main’: main.c:8: warning: implicit decl…
5. 虚拟内存管理 我们知道操作系统利用体系结构提供的VA到PA的转换机制实现虚拟内存管理.有了共享库的基础知识之后,现在我们可以进一步理解虚拟内存管理了.首先分析一个例子: $ ps PID TTY TIME CMD 29977 pts/0 00:00:00 bash 30032 pts/0 00:00:00 ps $ cat /proc/29977/maps 08048000-080f4000 r-xp 00000000 08:15 688142 /bin/bash 080f4000-080…
由Linux链接详解(1)中我们简单的分析了静态库的引用解析和重定位的内容, 下面我们结合实例来看一下静态链接重定位过程. /* * a.c */ ; void add(int c); int main() { ; add(c); ; } /* * b.c */ extern int a; void add(int c) { a += c; } 实例中使用了如上代码, 在a.c 中是我们的入口函数main 和定义的全局变量a,其中引用了函数add 它的定义在b.c中.在b.c中又引用了a.c中a…
rm:删除命令 前言: windows中的删除命令大家都不陌生,linux中的删除命令和windows中有一个共同特点,那就是危险,前两篇linux mkdir 命令详解及使用方法实战[初级]中我们就提到了rm命令,现在我们来详细介绍一下linux中删除文件和目录的命令, rm命令,rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. 名称 rm - remove files o…