linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍
参考: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)——系统文件描述符、动静态文件、块设备介绍相关推荐
- linux c中的文件描述符与打开文件之间的关系
转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通 ...
- linux系统文件描述符详解
首先我们需要知道操作系统内维护了三个系统文件表:文件描述符表(file descriptor table),打开文件表(open file table),inode table.这三个表的结构见Tab ...
- linux文件描述符与标识符,文件描述符fd
这里以问答的方式来讨论这个问题: 1. 文件描述符 fd 和文件指针 FILE *的关系? 文件描述符是什么?我们知道每一个进程都有一个自己的PCB(进程控制块),进程控制块的结构是: struct ...
- Linux中的文件描述符与打开文件之间的关系
1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是 ...
- linux 文件指针,Linux中文件描述符fd与文件指针FILE*互相转换实例解析
本文研究的主要是Linux中文件描述符fd与文件指针FILE*互相转换的相关内容,具体介绍如下. 1.文件描述符fd的定义:文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进 ...
- Linux下多个进程可以同时打开同一个文件吗?文件描述符与打开文件的关系?
一:结论 1.两个进程中分别产生生成两个独立的fd 2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性 3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护 4.任何一个进程删 ...
- 文件描述符fd和文件指针File* fp的区别和转换
在linux系统中把设备和普通文件也都看做是文件,要对文件进行操作就必须先打开文件,打开文件后会得到一个文件描述符,它是一个很小的正整数,是一个索引值. 内核会为每一个运行中的进程在进程控制块pcb ...
- 两台linux电脑在互联网内传输文件,linux网络编程之实现跨平台PC之间进行文件传输...
//实现两台计算机进行文件传输,包括跨平台传输即linux与windows之间 //TCP的文件传输 //文件大小不限制,需要做到将大文件分包去做 server.c //服务端程序 int main( ...
- HTMD | 从PDB文件获取3D特征描述符
KDEEP是使用深度学习(CNN)进行亲和力预测的预测器. 关于这篇文章,我发现了一个新的名为HTMD(高通分子动力学)的python库. 我真的不擅长从头算或MD计算等计算领域. 因此,我无法评估该 ...
最新文章
- RESTful服务最佳实践
- 暑期总结之--c#界面设计作业Mini U-NET(多图杀猫)
- 个性二维码开源专题液化/圆角/效果
- Android -- 自定义权限
- java char i=2+#039;2#039;;_P039 二维数组的字符按列存放到字符串中 ★★
- 在Nginx上配置NameCheap免费SSL
- win10电脑一开机提示拒绝访问怎么办
- 迷宫问题的通用解法C语言数据结构实现
- RAC 修改 ASM实例名 的步骤
- 行业点评:大疆反腐事件,员工的反驳
- 为什么勒索软件的预防如此重要?
- 真3D麻将游戏桌面适配任意分辨率
- 游戏编程所需要的知识
- python读取并显示图片
- 微星主板前置音频接口的连接说明
- 正则表达式 -文书网ktr
- xamp环境搭建Pikachu实验环境搭建
- 线速度与角速度的关系
- FB微软谷歌大会惊喜欠奉,AI风向还是看今夏的百度Create吧
- 介绍芯片时为什么都要介绍制程?制程到底是什么?14nm、10nm?
热门文章
- 瓜子二手车发12月二手车价格:汉兰达奥德赛CR-V保值率居首
- Android绘制(三):Path结合属性动画, 让图标动起来!
- 深入理解 ajax_xhr 对象
- 虚拟机测试必备虚拟机之VirtualBox 使用
- Entity Framework中使用IEnumerableT、IQueryableT及IListT的区别
- You can't specify target table 'tablename' for update in FROM clause的解决方法
- 通过指针便利图像元素
- xvid 数据编码和解码
- 静态时序分析——Data to data check
- (七)立体标定与立体校正 【计算机视觉学习笔记--双目视觉几何框架系列】