当前位置:  技术问答>linux和unix

问个IO原子性的问题

    来源: 互联网  发布时间:2016-07-29

    本文导语:  正在拜读APUE,里面有这么一段话 如果采用 lseek 再 write,有可能在两个函数之间被挂起 而用 pwrite因为只有一个函数就不会 我有问题就是,怎么能保证不会再pwrite函数内部刚刚定位了偏移量之后就被挂起呢? 毕竟...

正在拜读APUE,里面有这么一段话

如果采用
lseek

write,有可能在两个函数之间被挂起


而用
pwrite因为只有一个函数就不会


我有问题就是,怎么能保证不会再pwrite函数内部刚刚定位了偏移量之后就被挂起呢?

毕竟我如果写一个pwrite函数先调用lseek,再write,总不能因为现在在一个函数里,所以就实现了原子性吧

|
这种原子性是在内核里实现的,当实现pwrite调用时,内核首先将偏移量设置到offset处再进行write操作。
而不是调用二个函数lseek和write.

|
我想APUE上想说的不是LZ想的那种吧
我觉得这三个函数都可能被挂起

|
http://hi.baidu.com/jzring/blog/item/cb59853ee8d859cb7c1e714c.html

调用pwrite时,无法中断其定位和读操作,另外不更新文件指针。


|
内核用个锁就能保证原子性操作

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下GCC内置原子操作函数(多线程资源访问)介绍
  • 原子上下文 不能睡眠的原因是? 原子上下文能否调度?
  • 关于原子操作的疑问
  • linux内核原子量操作的小疑问
  • linux中同步与原子操作的相关知识辨析【请教高手】
  • shmget shmctl shmop 是不是都是原子操作
  • unix编程,两条语句,有方法可以保证是原子操作吗
  • 怎么实现一个原子操作
  • linux平台usleep(time);函数是否是原子操作不能被CPU线程切换打断?
  • 进程中原语的原子性得不到保证会怎样?
  • 不理解为什么这样就是原子的操作了
  • 谁知道solaris对socket的recv和send函数是否是原子操作,谢谢!!
  • linux中有对某个数值进行原子操作的函数吗?
  • 什么是原子操作?
  • 高手请进!Solaris下如何实现原子加的操作?不用互斥量等等同步对象!
  • 在用户态如何使用原子操作?
  • linux原子操作的疑惑
  • 请问:如何让对多个现有的文件的写操作成为一个原子操作,并可以实现安全的回滚功能?
  • 新手求教LINUX下的原子操作该怎么写
  • asm volatile("incl %0":"+r"(b));是原子操作么。。。
  • 求助:关于pipe写入的原子性


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3