文件共享

由于定位和写操作,是两个分开的函数调用,在调用期间,内核有可能临时挂起该进程,破坏原子操作。

多进程共享文件,写操作需要考虑文件的同步问题, 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文件编程(二)相关推荐

  1. linux网络编程二:基础socket, bind, listen, accept, connect

    linux网络编程二:基础socket, bind, listen, accept, connect 1. 创建socket #include <sys/types.h>     #inc ...

  2. linux文件编程(1)—— open、write、read、lseek、阻塞问题

    参考:linux文件编程(1)-- 常用API之open.write.read.lseek 作者:丶PURSUING 发布时间: 2021-04-08 22:19:28 网址:https://blog ...

  3. Linux 串口编程二 深入了解 termios

    前言 这一系列串口编程重点在应用层编程,但是在讲解原理与相关概念时需要对驱动框架有个基础的认识.如果只是浅尝辄止,以后在遇到串口驱动与应用层程序调试难免遇到瓶颈.关于 tty驱动架构参见我的其他博客: ...

  4. linux判断文件写入完毕,linux文件编程——系统调用(打开、写入、读取、访问判断)...

    linux文件编程有两个方法:1.linux系统调用 2.C语言函数库 前者依赖的是linux系统,后者独立于操作系统而存在,不依赖于任何操作系统,因此,在不同的操作用使用C语言函数库的方法是一样的. ...

  5. linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍

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

  6. linux文件编程(3)—— main函数传参、myCp(配置成环境变量)、修改配置文件、整数和结构体数组写到文件

    参考:linux文件编程(3)-- 文件编程的简单应用:myCp.修改配置文件 作者:丶PURSUING 发布时间: 2021-04-09 23:45:05 网址:https://blog.csdn. ...

  7. linux文件编程 打开 创建 写入

    int main() {int fd;fd = open("./file2",O_RDWR);if(fd == -1){printf("file2 no exist\n& ...

  8. linux文件编程(open、write、read、creat、lseek函数)

    文件编程内容比较多,如文件系统原理及访问机制文件在内核中的管理机制,什么是文件信息节点iNode.文件共享.文件权限.各种用户对其权限等等.以下主要记录如何用代码操作文件,实现文件的创建.打开.编辑等 ...

  9. Linux文件编程(2)

    文件打开创建补充 (1)O_EXCL O_EXCL和O_CREAT配合使用 若文件不存在则创建文件 若文件存在则返回-1 代码演示 #include <sys/types.h> #incl ...

  10. Linux文件操作命令(二)

    1.在前面我介绍过一些Linux文件操作命令,文章地址: http://blog.csdn.net/u012561176/article/details/44083321,但是我介绍了一些,还有一些比 ...

最新文章

  1. SpringBoot项目打包war部署到服务器去掉项目名所遇到的坑
  2. LeetCode 207. Course Schedule--有向图找环--面试算法题--DFS递归,拓扑排序迭代--Python
  3. jquery格式化时间
  4. 不同工作组能访问吗_“辣椒”的辣味从哪里来?有方法能测量不同辣椒的辣度吗?...
  5. shell 水平测试
  6. HTTP状态码一览表(HTTP Status Code)
  7. 如何分析线程转储–线程堆栈跟踪
  8. 计算机操作员初级 第1单元0202微型计算机基本操作 教学大纲,计算机操作员教学大纲...
  9. 计算机网络之网络概述:1、基本概念
  10. oracle hibernate 主键,oracle hibernate 主键自增
  11. pcs7 simatic batch v9.0_西门子V90 伺服STO安全功能注意事项
  12. 下个月计划【2009-5】
  13. 学习记录-程序语言基础(1)
  14. bae java-tomcat_有人在BAE开发过java-tomcat应用吗?数据库老是链接失败
  15. GUI Design Studio设计实例(附视频) :快速入门
  16. 2018-CBAM论文讲解
  17. android裁剪部分放大动画,【Android】图片放大被截了一部分之认识clipChildren属性的用法...
  18. TeeChart.NET 4.2021.11.2 Crack
  19. Vuex 命名空间 namespaced 介绍
  20. java多个文件压缩打包成zip下载

热门文章

  1. php防丢包,记一次丢包网络故障
  2. 初中物理凸透镜成像动态图_人教版初中物理八年级上册 平面镜成像 公开课优质课课件教案视频...
  3. java 全角半角符号转换_java 字符串全角半角转换
  4. Java 利用 split 方法切割字符串
  5. MongoDB导出-导入-迁移
  6. Linux(CentOS)安装Node.JS和npm的两种方式(yum安装和源码安装)
  7. 发送HTTP请求的新姿势
  8. 023-数据结构与算法系列
  9. setTimeout(), nextTick(),setImmediate()区别 ZT~
  10. js中map和python中的map