写入工作但读取失败 - C

时间:2013-04-29 20:13:54

标签: c file-io

我有以下代码从另一个模块获取文件路径,打开文件并读取内容。文件正在打开,但读取失败,错误:文件编号错误。然后我打开后插入一个写命令,但是读取仍然失败。有人请告诉我为什么读取不起作用?另外,我很困惑为什么当我以R_ONLY模式打开文件时,write()甚至可以正常工作。

          char* file_content = (char*) malloc (1024);
          int fd = open(filepath,"O_RDONLY");
          printf("I have attempted open file \n");
          fflush(stdout);
          bzero(file_content, 1024*sizeof(char));
          if(fd <= 0) { //open failed
            file_content = "Error opening file";
            printf("The error number is %d\n", errno);
            fflush(stdout);
          }
          else
          {
             if(write(fd, "hello", 5)<0){
                printf("write failed");
                fflush(stdout);
              }
            if(read(fd, file_content,1023) < 0){
                printf("Error! Read file as %d\n",errno);
                fflush(stdout);
            }
          }

输出错误!将文件读取为8. 8 =文件编号错误。有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

问题是

open(filepath,"O_RDONLY");

应该是

open(filepath, O_RDONLY);

目前它正在使用字符串文字的地址作为打开标志的整数。