参考:linux文件编程(2)——文件操作原理简述之文件描述符、动静态文件、块设备
作者:丶PURSUING
发布时间: 2021-04-09 11:14:12
网址:https://blog.csdn.net/weixin_44742824/article/details/115209312

目录

  • 系统占用的文件描述符
    • 系统文件描述符使用示例
  • 静态文件与动态文件

系统占用的文件描述符

名称 描述符 示例 说明
标准输入 STDIN_FILENO 0 read(0,buf,255) 从标准输入(键盘)的地方读取255个字节存放到buf
标准输出 STDOUT_FILENO 1 write(1,buf,255) 将buf中的255个字节写入到标准输出(shell,屏幕)
标准错误 STDERR_FILENO 2 - 文件出错时的错误信息可以放到标准错误里面打印(工程做大时),相当于往2中扔垃圾

文件描述符的作用域仅为当前进程

系统文件描述符使用示例

#include <unistd.h>
#include <stdlib.h>int main()
{char* buf = (char* )malloc(128);//从标准输入中读取read(0,buf,128);//打印到标准输出中write(1,buf,128);return 0;
}

运行结果:

静态文件与动态文件

静态文件:存放于磁盘,未被打开的文件

动态文件:当使用open后,在linux内核会产生一个结构体来记录文件的信息,例如fd,buf,信息节点.此时的read,write都是对动态文件进行操作,当close时,才把缓存区所有的数据写回磁盘中

为什么不直接操作块设备(静态文件)

块设备本身读写不灵活,按照块来读写,而内存是按照字节单位操作的.例如一个块中存放着20个字节,想修改其中的一个字节,用块就无法修改.

linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍相关推荐

  1. linux c中的文件描述符与打开文件之间的关系

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述     在Linux系统中一切皆可以看成是文件,文件又可分为:普通 ...

  2. linux系统文件描述符详解

    首先我们需要知道操作系统内维护了三个系统文件表:文件描述符表(file descriptor table),打开文件表(open file table),inode table.这三个表的结构见Tab ...

  3. linux文件描述符与标识符,文件描述符fd

    这里以问答的方式来讨论这个问题: 1. 文件描述符 fd 和文件指针 FILE *的关系? 文件描述符是什么?我们知道每一个进程都有一个自己的PCB(进程控制块),进程控制块的结构是: struct ...

  4. Linux中的文件描述符与打开文件之间的关系

    1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是 ...

  5. linux 文件指针,Linux中文件描述符fd与文件指针FILE*互相转换实例解析

    本文研究的主要是Linux中文件描述符fd与文件指针FILE*互相转换的相关内容,具体介绍如下. 1.文件描述符fd的定义:文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进 ...

  6. Linux下多个进程可以同时打开同一个文件吗?文件描述符与打开文件的关系?

    一:结论 1.两个进程中分别产生生成两个独立的fd 2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性 3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护 4.任何一个进程删 ...

  7. 文件描述符fd和文件指针File* fp的区别和转换

    在linux系统中把设备和普通文件也都看做是文件,要对文件进行操作就必须先打开文件,打开文件后会得到一个文件描述符,它是一个很小的正整数,是一个索引值.  内核会为每一个运行中的进程在进程控制块pcb ...

  8. 两台linux电脑在互联网内传输文件,linux网络编程之实现跨平台PC之间进行文件传输...

    //实现两台计算机进行文件传输,包括跨平台传输即linux与windows之间 //TCP的文件传输 //文件大小不限制,需要做到将大文件分包去做 server.c //服务端程序 int main( ...

  9. HTMD | 从PDB文件获取3D特征描述符

    KDEEP是使用深度学习(CNN)进行亲和力预测的预测器. 关于这篇文章,我发现了一个新的名为HTMD(高通分子动力学)的python库. 我真的不擅长从头算或MD计算等计算领域. 因此,我无法评估该 ...

最新文章

  1. RESTful服务最佳实践
  2. 暑期总结之--c#界面设计作业Mini U-NET(多图杀猫)
  3. 个性二维码开源专题液化/圆角/效果
  4. Android -- 自定义权限
  5. java char i=2+#039;2#039;;_P039 二维数组的字符按列存放到字符串中 ★★
  6. 在Nginx上配置NameCheap免费SSL
  7. win10电脑一开机提示拒绝访问怎么办
  8. 迷宫问题的通用解法C语言数据结构实现
  9. RAC 修改 ASM实例名 的步骤
  10. 行业点评:大疆反腐事件,员工的反驳
  11. 为什么勒索软件的预防如此重要?
  12. 真3D麻将游戏桌面适配任意分辨率
  13. 游戏编程所需要的知识
  14. python读取并显示图片
  15. 微星主板前置音频接口的连接说明
  16. 正则表达式 -文书网ktr
  17. xamp环境搭建Pikachu实验环境搭建
  18. 线速度与角速度的关系
  19. FB微软谷歌大会惊喜欠奉,AI风向还是看今夏的百度Create吧
  20. 介绍芯片时为什么都要介绍制程?制程到底是什么?14nm、10nm?

热门文章

  1. 瓜子二手车发12月二手车价格:汉兰达奥德赛CR-V保值率居首
  2. Android绘制(三):Path结合属性动画, 让图标动起来!
  3. 深入理解 ajax_xhr 对象
  4. 虚拟机测试必备虚拟机之VirtualBox 使用
  5. Entity Framework中使用IEnumerableT、IQueryableT及IListT的区别
  6. You can't specify target table 'tablename' for update in FROM clause的解决方法
  7. 通过指针便利图像元素
  8. xvid 数据编码和解码
  9. 静态时序分析——Data to data check
  10. (七)立体标定与立体校正 【计算机视觉学习笔记--双目视觉几何框架系列】