linux文件编程(二)
文件共享
由于定位和写操作,是两个分开的函数调用,在调用期间,内核有可能临时挂起该进程,破坏原子操作。
多进程共享文件,写操作需要考虑文件的同步问题, single Unix sprcification的XSI扩展,例
#include <unistd.h>
ssizte_t pread(int filedes, void *buf, size_t nbytes, off_t offset);
ssizte_t pwrite(int filedes,const void *buf, size_t nbytes, off_t offset);
相当于顺序调用lseek 和read/write, 都是在pread/pwrite执行中,不中断定位和读写操作;不更新文件指针。
也可以使用记录锁,实现原子操作。
dup和dup2函数
复制现存文件描述符
sysnc,fsync,fdatasync函数
sysnc将所有修改过的块缓冲区排入写队列,并不等待实际写磁盘结束
fsync和fdatasync,会等待写磁盘操作结束。
fcntl函数
改变打开的文件的性质
ioctl函数
io操作的杂物箱
/dev/fd
此文件主要由shell使用,
转载于:https://blog.51cto.com/baigoogledu/394876
linux文件编程(二)相关推荐
- linux网络编程二:基础socket, bind, listen, accept, connect
linux网络编程二:基础socket, bind, listen, accept, connect 1. 创建socket #include <sys/types.h> #inc ...
- linux文件编程(1)—— open、write、read、lseek、阻塞问题
参考:linux文件编程(1)-- 常用API之open.write.read.lseek 作者:丶PURSUING 发布时间: 2021-04-08 22:19:28 网址:https://blog ...
- Linux 串口编程二 深入了解 termios
前言 这一系列串口编程重点在应用层编程,但是在讲解原理与相关概念时需要对驱动框架有个基础的认识.如果只是浅尝辄止,以后在遇到串口驱动与应用层程序调试难免遇到瓶颈.关于 tty驱动架构参见我的其他博客: ...
- linux判断文件写入完毕,linux文件编程——系统调用(打开、写入、读取、访问判断)...
linux文件编程有两个方法:1.linux系统调用 2.C语言函数库 前者依赖的是linux系统,后者独立于操作系统而存在,不依赖于任何操作系统,因此,在不同的操作用使用C语言函数库的方法是一样的. ...
- linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍
参考:linux文件编程(2)--文件操作原理简述之文件描述符.动静态文件.块设备 作者:丶PURSUING 发布时间: 2021-04-09 11:14:12 网址:https://blog.csd ...
- linux文件编程(3)—— main函数传参、myCp(配置成环境变量)、修改配置文件、整数和结构体数组写到文件
参考:linux文件编程(3)-- 文件编程的简单应用:myCp.修改配置文件 作者:丶PURSUING 发布时间: 2021-04-09 23:45:05 网址:https://blog.csdn. ...
- linux文件编程 打开 创建 写入
int main() {int fd;fd = open("./file2",O_RDWR);if(fd == -1){printf("file2 no exist\n& ...
- linux文件编程(open、write、read、creat、lseek函数)
文件编程内容比较多,如文件系统原理及访问机制文件在内核中的管理机制,什么是文件信息节点iNode.文件共享.文件权限.各种用户对其权限等等.以下主要记录如何用代码操作文件,实现文件的创建.打开.编辑等 ...
- Linux文件编程(2)
文件打开创建补充 (1)O_EXCL O_EXCL和O_CREAT配合使用 若文件不存在则创建文件 若文件存在则返回-1 代码演示 #include <sys/types.h> #incl ...
- Linux文件操作命令(二)
1.在前面我介绍过一些Linux文件操作命令,文章地址: http://blog.csdn.net/u012561176/article/details/44083321,但是我介绍了一些,还有一些比 ...
最新文章
- SpringBoot项目打包war部署到服务器去掉项目名所遇到的坑
- LeetCode 207. Course Schedule--有向图找环--面试算法题--DFS递归,拓扑排序迭代--Python
- jquery格式化时间
- 不同工作组能访问吗_“辣椒”的辣味从哪里来?有方法能测量不同辣椒的辣度吗?...
- shell 水平测试
- HTTP状态码一览表(HTTP Status Code)
- 如何分析线程转储–线程堆栈跟踪
- 计算机操作员初级 第1单元0202微型计算机基本操作 教学大纲,计算机操作员教学大纲...
- 计算机网络之网络概述:1、基本概念
- oracle hibernate 主键,oracle hibernate 主键自增
- pcs7 simatic batch v9.0_西门子V90 伺服STO安全功能注意事项
- 下个月计划【2009-5】
- 学习记录-程序语言基础(1)
- bae java-tomcat_有人在BAE开发过java-tomcat应用吗?数据库老是链接失败
- GUI Design Studio设计实例(附视频) :快速入门
- 2018-CBAM论文讲解
- android裁剪部分放大动画,【Android】图片放大被截了一部分之认识clipChildren属性的用法...
- TeeChart.NET 4.2021.11.2 Crack
- Vuex 命名空间 namespaced 介绍
- java多个文件压缩打包成zip下载
热门文章
- php防丢包,记一次丢包网络故障
- 初中物理凸透镜成像动态图_人教版初中物理八年级上册 平面镜成像 公开课优质课课件教案视频...
- java 全角半角符号转换_java 字符串全角半角转换
- Java 利用 split 方法切割字符串
- MongoDB导出-导入-迁移
- Linux(CentOS)安装Node.JS和npm的两种方式(yum安装和源码安装)
- 发送HTTP请求的新姿势
- 023-数据结构与算法系列
- setTimeout(), nextTick(),setImmediate()区别 ZT~
- js中map和python中的map