Linux中“一切皆文件”

“一切皆文件”

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

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

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

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


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

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

./test


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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值