Linux 一切皆文件思想



“一切皆文件”

在linux开发过程中,相信大家都听过一句话叫作“limux下,一切皆文件”。这句话是linux/unix的哲学核心思想,下面我们就针对这句话给大家进行展开解释下。

这句话中的“文件”不仅仅是我们通常所指的文件,在linux和unix中它代表的更为宽泛。目录、字符设备、块设备、 套接字、进程、线程、管道等都被视为是一个“文件”,那么既然这样当我们建立一个文件时,我们如何来操作一个已经打开文件呢?

文件描述符(file descriptor),简称fd

这里就使用到了“文件描述符”,它是一个对应某个已经打开的文件的索引(非负整数)。下图表述了一个文件描述符的意义,


其中每一个文件描述符都是一个问文件的索引,当然也可以出现多个不同的文件描述符索引同一个文件。在linux系统中,0是标准输入的文件描述符,stdin。1是标准输出的文件描述符,stdout。2是标准错误输出的文件描述符,stderr


  
  
  1. //test.cpp关于标准文件描述符的测试
  2. #include<unistd.h>//这是系统调用read和write和头文件
  3. #include<string.h>
  4. int main()
  5. {
  6. char *t = new char[ 10];
  7. read( 0, t, 10); //从标准输入(键盘)读取10个字节长度放入t中
  8. write( 1, t, strlen(t)); //将t中的前10个字节内容写出到标准输出(屏幕)上
  9. return 0;
  10. }
g++ -o test test.cpp

./test


其中第一个行的”ertewtr”是read系统调用我们输入的,第二行的”ertewtr”是write系统调用写到屏幕上的。



猜你喜欢

转载自blog.csdn.net/toyijiu/article/details/81233243
今日推荐