首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 同步IO: sync、fsync与fdatasync

为了保证磁盘上实际文件系统与缓冲区高速缓存中内容的一致性,UNIX系统提供了sync、fsync和fdatasync三个函数。...sync函数只是将所有修改过的块缓冲区排入写队列,然后就返回,它并不等待实际写磁盘操作结束。 通常称为update的系统守护进程会周期性地(一般每隔30秒)调用sync函数。...命令sync(1)也调用sync函数。 fsync函数只对由文件描述符filedes指定的单一文件起作用,并且等待写磁盘操作结束,然后返回。...void *addr, size_t length, int flags) msync需要指定同步的地址区间,如此细粒度的控制似乎比fsync更加高效(因为应用程序通常知道自己的脏页位置),但实际上(Linux...(实际上,Linux对O_SYNC/O_DSYNC做了相同处理,没有满足Posix的要求,而是都实现了fdatasync的语义)相对于fsync/fdatasync,这样的设置不够灵活,应该很少使用。

2.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux文件和目录的粘滞位(sticky bit)

    几经周转,发现AAA用户创建文件位置的上层目录的权限是drwxrwxrwt,做开发这么多年了,还没见过所谓"t"的权限,于是找了一位公司的linux大师帮忙,大师噼里啪啦的做了一堆试验后,然后在google...上搜索"rwt linux",终于发现了问题,发现这种用法的名字是“文件的粘滞位(sticky)位“。...它的作用是:普通文件的sticky位会被linux内核忽略,但 目录的sticky位表示这个目录里的文件只能被owner和root删除,没错这就是问题本质,也和我的现象相吻合。...普通文件的sticky位会被linux内核忽略, 目录的sticky位表示这个目录里的文件只能被owner和root删除 粘着位(Sticky bit) 如果用户对目录有写权限,则可以删除其中的文件和子目录...# chmod 1770 xxx 举一个linux下的常见目录来做例子,也就是 /tmp 目录来说一下粘连位的作用。

    1.7K30

    Maix Bit 系列心得(1)--- 初识Maix Bit

    文章目录 一、简介 二、K210芯片参数 三、开发板配置 四、开发板原理图 五、应用 参考文献 导语:Maix Bit 是基于K210(RISC-V架构64位双核)设计的一款AIOT开发板。...一、简介 Maix Bit 开发板是SiPEED公司Maix产品线的一员,基于嘉楠堪智科技的边缘智能计算芯片K210(RISC-V架构64位双核) 设计的一款AIOT开发板。...二、K210芯片参数 项目 说明 内核 RISC-v Dual Core 64bit,with FPU 主频 400MHz(可超频至600MHz) SRAM 内置8M Byte 图像识别 QVGA@60fps...12S、TIMER9 视频处理 神经网络处理器(KPU) FPU满足IEEE754-2008标准 音频处理器(APU) 快速傅里叶变换加速器(FFT) 三、开发板配置 项目 说明 CPU 双核 64bit...RISC-V / 400MHz (双精度FPU集成) 内存 8MiB 64bit 片上 SRAM 存储 16MiB Flash, 支持 micro SDXC 拓展存储 (最大128GB**) 屏幕(套餐

    2.2K10

    Sync Framework 2.0

    Sync Framework 是一个功能完善的同步平台,实现了应用程序、服务和设备的协作和脱机访问。Sync Framework 提供了一些可支持在脱机状态下漫游、共享数据和获取数据的技术和工具。...Sync Services for File Systems) Web 馈送同步组件(在以前的版本中称为 Sync Services for FeedSync) Sync Framework 文档提供简介以及一组帮助主题和参考主题...,帮助您快速了解 Sync Framework 并在实际工作中使用它。...Sync Framework 包括有助于解决约束冲突和将解决方法应用到目标副本的组件。冲突记录功能通过帮助管理日志(例如删除废弃的冲突)的 Sync Framework 组件得到了增强。...有关如何跟踪 Sync Framework 执行的详细信息,请参阅随 Sync Framework SDK 一起安装的文档中的“跟踪 Sync Framework 组件”。

    1.3K70

    Golang包——sync

    sync.Mutex互斥锁 // Lock 用于锁住 m,如果 m 已经被加锁,则 Lock 将被阻塞,直到 m 被解锁。...func (m *Mutex) Unlock() sync.RWMutex读写锁 1.它允许任意读操作同时进行 2.同一时刻,只允许有一个写操作进行 3.并且一个写操作被进行过程中,读操作的进行也是不被允许的...sync包中的WaitGroup实现了一个类似任务队列的结构,你可以向队列中加入任务,任务完成后就把任务从队列中移除,如果队列中的任务没有全部完成,队列就会触发阻塞以阻止程序继续运行。...import ( "fmt" "math/rand" "sync" "time" ) func work(name string,workTime time.Duration...func fooOnce(){ fmt.Println("只会执行一次") } func main() { var once sync.Once done := make(chan

    94320
    领券