Chinaunix首页 | 论坛 | 博客
  • 博客访问: 186802
  • 博文数量: 69
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 686
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-22 11:12
文章存档

2011年(1)

2010年(11)

2009年(35)

2008年(22)

我的朋友

分类: LINUX

2009-06-21 15:10:45

  1. 带空洞的文件叫做sparse file,稀疏文件可以节省可观的空间并提升效率,因为操作那些空洞并不引发任何物理I/O。
  2. pread和pwrite最重要的作用是可以避免在使用lseek时可能出现的潜在竞争。由于线程共享文件描述符,可能在一个线程调用lseek之后,但尚未进行读写操作之前,另一个线程修改文件位置,这时就可以使用pread和pwrite。
  3. I/O多路复用的设计遵循以下原则1)I/O多路复用:当任何文件描述符准备好I/O时通知我2)在一个或更多文件描述符就绪前始终处于睡眠状态。3)唤醒:哪个准备好了?4)在不阻塞的情况下处理所有IO就绪的fd。5)返回第一步,重新开始。
  4. Linux提供了三种I/O多路复用方案:select,poll和epoll。
  5. Linux和所有的复合可移植性的操作系统,以相同的方式对待文本和二进制文件。
  6. fgetc,fgets,fread,fputc,fputs,fwrite。
  7. fflush只是将数据从用户缓冲区写入到内核缓冲区,要真正写到磁盘,需要使用fsync。
  8. 标准I/O的函数本质上是线程安全的。
  9. 函数flockfile()会等待流被解锁,然后获得锁,增加锁计数,成为流的所有者线程,然后返回。
阅读(789) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~