c语言 - 为什么我无法从文件中读取?

  • 本文关键字:文件 读取 语言 file
  • 更新时间 :
  • 英文 :


我正在尝试从文件中读取几个字节,然后将它们打印到屏幕上,但由于某种原因,read()函数一直返回-1。

代码如下:

#include<stdio.h> 
#include<sys/types.h> 
#include<fcntl.h>
#include<stdlib.h> 
int main(int argc, char* argv[]) {
    char buff[100];
    int file_desc=open(argv[1], O_RDONLY);
    if (file_desc<0) {
        printf("Error opening the file.n");
        exit(-1);
    }
    printf("File was successfully opened with file descriptor %d.n", file_desc);

    int ret_code=read(argv[1],buff,20);
    if (ret_code==-1) {
        printf("Error reading the file.n");
        exit(-1);
    }
    int i;
    for (i=0; i<20; i++) {
        printf("%c ",buff[i]);
    }
    printf("n");
}

此输出为:

File was successfully opened with file descriptor 3.
Error reading the file.

我尝试读取的文件肯定大于 20 字节。
这里可能有什么问题?

如果你看一下read的参数,第一个参数应该是打开的文件描述符,而不是文件名;

int ret_code=read(file_desc,buff,20);

。应该工作得更好。

相关内容

  • 没有找到相关文章

最新更新