免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1578 | 回复: 1
打印 上一主题 下一主题

文件标识的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-12 14:52 |只看该作者 |倒序浏览
#include "apue.h"
#include <fcntl.h>
int main(int argc,char  *argv[]){
  int fd1=0;
  int val;
  char buf[]="dsad\n";
  if((fd1=open("tt",O_RDWR | O_APPEND,FILE_MODE))<0){
    printf("error creat\n");
    exit(-1);
  }
  printf("fd1:%d\n",fd1);
  if(write(fd1,buf,5)!=5){
    printf("write error");
    exit(-14);
  }
   if((val=fcntl(fd1,F_GETFL,0))<0){
    printf("fcntl error for fd %d\n",fd1);
    exit(-1);
  }
  switch (val & O_NONBLOCK){
  case O_RDONLY:
    printf("read only");
    break;
  case O_WRONLY:
    printf("write only");
    break;
  case O_RDWR:
    printf("read write");
    break;
  default:
    {
      printf("unknow access mode");
      exit(-3);
    }
  }
    if(val & O_APPEND)
      printf(",append");
    if(val & O_NONBLOCK)
      printf(",nonblocking");
#if defined(O_SYNC)
    if(val & O_SYNC)
      printf(",synchronous writes");
#endif
#if !defined(_POSIX_C_SOURCE) && defined (O_FSYNC)
    if(val & O_FSYNC)
      printf(",synchronous writes ");
#endif
    putchar('\n');
    exit(0);
}

输出是read only,append
我觉的应该是read write,append
不知是和问题
还有我感觉用fcntl改文件标识的话,不是什么状态就可以改的

论坛徽章:
0
2 [报告]
发表于 2008-09-12 14:56 |只看该作者
不好意思,搞错了个东西,让我思考了一天,就是想不通了,呵呵
现在知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP