linux :/dev下的一些文件

来源:互联网 发布:淘宝客怎么查看卖家id 编辑:程序博客网 时间:2024/06/08 08:41

zero文件:关于这个文件,没什么好说的,zero就代表0,0就是没有,当你在创建一个新文件的时候,它可以用来为你初始化这个文件,因为它等于空,你可以用它把你的文件里面没一个地方都设置成0,就像这样

 

dd if=/dev/zero of=/dev/fb0 bs=1024 count=768

 

这样你的fb0从1到1024*768的内容就都为空了

 

null文件: bit buckit(位桶),写入这个文件里的东西全部都会被丢弃,就是一个文件流的垃圾桶,如果有什么信息是不要的,就往里面写吧,永远不用当心桶会爆掉。null一般用来消除程序里面一些垃圾信息(对于你来说的垃圾信息),比如说一些提示语句,一些日志,你可以这样将它除掉:

 

可执行程序名字 > /dev/null

 

那么这个可执行程序显示在屏幕上的什么提示信息,友好信息就都不见了

 

loop文件: 学名环回设备,网上的解释:一个环回设备就是一种机制, 可以让一般文件访问起来就像块设备那样,我的理解就是如果用losetup命令将loop文件和一个普通的文件绑定(如iso文件),那么操作系统就可以像挂载磁盘一样区挂载这个文件,简单的说就是把“普通文件磁盘化”,这样说很不专业,纯粹个人理解。举个例子:

 

mount -t ext3 /dev/hda1  /mnt

这个大家都知道,把第一块磁盘(hd类)的第一个分区挂载在mnt文件夹下,以后打开这个文件夹就可以看到这个分区的内容了,/dev/hda1为什么能挂载?就是因为它天生就是个代表磁盘的文件,或者说它就是个磁盘,那么现在如果有个ios类型的文件,可以可以直接挂载么? 不可以,因为在linux文件系统眼中ios文件还是个普通文件,所以ios里面的内容还是不能通过挂载来看到,所以loop文件派上用场了。。。

 

losetup /dev/loop0  *ios

mount /dev/loop0  /mnt

当然也可以这样写  mount *.ios /mnt -o loop

这样就可以直接打开mnt看ios里的东西了,loop有点想windows里的虚拟光驱,在windows里ios直接点击也是打不开的,但是用虚拟光驱就加载就可以解析出来了。如果你有一个这种“块设备类型”的文件都可以这样去加载它。

 

 

/dev/tty  指的是调用你当前进程的终端,输出到此的内容只会显示在这个终端显示器上,/dev/tty是个相对的概念,和调用程序的终端有关,就像"./"一样,和当前你说在的文件夹路径有关。网上很多人说/dev/tty指的是当前激活的终端,输出到此的内容只会显示在当前激活的终端显示器上,经过我的测试,这种说法是错误的;

请看这个例子:

 

#include<stdio.h>

int main()

{

   sleep(10);

   FILE* file = fopen("/dev/tty", "w");

   fprintf(file, "hello world !");

   fclose(file);

}

 

我开了2个终端 A和B,我先在A中运行了这个程序,然后马上就激活B终端,等待了10S之后,"hello world !"只是在A中出现了,B中什么东西都没有。这说明我的结论是正确的

 

 

 

原创粉丝点击