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

2011年(1)

2010年(11)

2009年(35)

2008年(22)

我的朋友

分类: LINUX

2009-05-08 18:09:10

  1. Linux支持的进程间通信机制包括管道,命名管道,信号量,消息队列,共享内存和快速用户空间互斥体。(Futexes)。
  2. 在系统编程中,错误通常通过函数的返回值表示,并通过特殊的变量errno来描述。
  3. 子进程默认会获得一份父进程的文件表拷贝。
  4. 文件描述符不仅用于普通文件的访问,也用于访问设备文件、管道、目录以及快速用户空间锁、FIFOs和套接字。
  5. 使用open()调用时,当O_CREAT出现时,mode参数需要给出,如果忘记了,结果是未定义的,而且通常很糟糕。
  6. mode参数是常见的Unix权限为集合,像八进制数0644。
  7. 实际上,最终写入磁盘的权限位还需让mode参数与用户文件创建的掩码做按位与操作后来确定。
  8. 有时候,程序员不希望当没有可读数据时让read()调用阻塞。相反,他们倾向于在没有可读数据时,让调用立即返回。这种情况被称为非阻塞I/O..
  9. 如果你想要处理所有的错误,并且读入所有len个字节(至少读到EOF),可以使用以下代码:

ssize_t ret;
while(len!=0&&(ret=read(fd,buf,len))!=0)
{
   if(ret==-1)
   {
      if(errno==EINTR)
         continue;
      perror("read");
      break;
    }
    len-=ret;
    buf+=ret;
}

10. 关闭文件和文件被写入磁盘写入没有什么关系。
阅读(815) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~