linux 文件描述 等。

5 篇文章 0 订阅

系统调用接口:

open("./mytest.tst", O_WRONLY|O_CREAT,0644)

open函数的返回值 返回的是fd 文件描述符号 , linux 默认打开的文件描述符号是 0 1 2 他们分别是 stdin stdout stderr 他们对应的物理设备是键盘 显示器 显示器

文件描述符的分配的规则是 找到当前没有被使用的最小的数组的一个下标;

如果一个文件没有被打开 那么这个文件在哪里呢 在磁盘上 那么该文件要不要占用磁盘空间呢 必须占用,文件有属性 属性也是数据 磁盘文件=文件内容+文件属性

刷新策略:::::

用户->OS

1.立即刷新 不缓冲 

2.行刷新 比如显示器打印 

3.缓冲区满了 才刷新(全刷新) 比如往磁盘文件输入

如果我们在运行重定向后 比如 fdtest > log.txt 这个时候 只有hello 可以写进log.txt 如果想要全部写进去 需要加入 fflush(stdout)刷新一下缓冲区。。

目录: 目录是文件 有数据 数据块里面放文件名和inode编号

软连接 是有自己独立的inode的 软链接是一个独立文件 有自己的inode属性 也有自己的数据块(保存的是指向文件的所在路径+文件名)

硬链接本质是根本就不是一个独立的文件 而是一个文件名于与inode编号的映射关系 因为自己没有独立的inode

补充输入重定向、

 这个我们一开始关闭键盘文件,然后创建一个log.txt 的新文件 这个时候 它的fd肯定为0 我们将 stdin 输入到line 里面 这个时候 0 对应的是普通文件 这样就完成了输入的重定向

dup 作用 在 文件描述表里的内容 需要重定向的时候

dup

dup2 ::dup2(fd,1) 将本来应该显示到显示器的内容 显示到新的fd里面 完成输出重定向

 打开文件默认是不清空的 如果我们想要请客 就需要 O_TRUNC;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值