stderr和磁盘理解

1.stderr

stderr文件默认的文件标识符是2,指向显示器,用来输出错误信息

#include<stdio.h>


int main()
{
  fprintf(stdout,"hello stdout\n");
  fprintf(stderr,"hello stderr\n");

  return 0;
}

stdout和stderr默认是指向显示器的,我们重定向下,

发现stdout打印到log.txt了,但是stderr还是打印到显示器上,因为我们重定向的是把文件标识符1给log.txt,而stderr的文件标识符是2,所以不影响,还是打印到显示器上,

我们还可以这样写,

把stdout文件输入到ok.txt中,把stderr输入到err.txt中,能不能把两个信息都打印到一个文件中呢?

2.磁盘理解

我们之前讨论的都是已经打开的文件,那么没有打开的文件放在哪里?磁盘,放在磁盘的文件就叫做磁盘文件,那么如何在磁盘中存储文件呢?

1.磁盘的构造

盘面:可读,可写,可擦除,两面都可以写,

2.磁盘的储存结构

磁盘读写的基本单位是扇区,大小一般是512字节,如何找到一个指定位置的扇区呢?

CHS定址法:

找到指定的磁头 Header

找到指定的磁道(柱面) Cylinder

找到指定的扇区 Sector

3.对磁盘的储存进行逻辑抽象

我们可以把磁盘抽象成一个以扇区为基本单位的线性数组,

有了扇区对应的下标,我们就可以在磁盘中找到对应的文件了,对于操作系统来说,和磁盘交互时的基本单位是4KB,也就是8个连续的扇区,这8个连续的扇区称为块,

我们可以把数组称为LBA blocks[N] ,LBA就是逻辑区块地址(Logical Blocks Address )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值