如何在C中使用函数read()读取大文件

雷尼310

阿罗哈

我是新来的,所以请放轻松。我正在尝试读取具有功能的文件,read()然后读取write()文件或文件描述符。我的函数成功读取了一个文件,但是当我尝试读取一个较大的文件时(以我的示例大小为40,000字节),会出现问题。

我认为我必须编写一个while循环,该循环将一直读取到文件末尾,但是我仍然坚持如何循环的想法。

(我在程序主体中打开文件或文件描述符)

我的函数(还转换二进制输入char数据并写入ASCII):

void function(int readFrom,int writeOn){
    char buffer[100];
    int x = read(readFrom, buffer, sizeof(buffer));
    int size= x/8;
    int i;
    for(i=0; i<size; i++){
        char temp[sizeof(int)-1];
        sprintf(temp,"%d",buffer[i];
        write(writeOn, temp, sizeof(temp));
    }
}
拉法·克里帕(RafałKrypa)

您需要检查函数read和的返回值write它们返回的读/写字节数可能小于您作为第三个参数传递的字节数。两者readwrite必须在类似以下的循环中完成:

int bytesRead = 0;

while (bytesRead < sizeof(buffer)) {
    int ret = read(readFrom, buffer + bytesRead, sizeof(buffer) - bytesRead);

    if (ret == 0)
        break; / * EOF */

    if (ret == -1) {
        /* Handle error */
    }

    bytesRead += ret;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在C ++中使用混合文本和二进制文件读取大文件

如何在Golang中使用Samll Ram读取大文件?

如何在C ++中读取大文件

如何使用Python read()一次读取大文件

如何在 C++ 中使用 fstream 读取 .txt 文件

在C ++中使用read()从文件读取

SSD使用C ++读取大文件

如何在C中使用函数读取数字并在main中使用它?

如何在Go中使用.Read函数?

如何在React中使用文件路径读取文件内容?

如何在wpf C#中使用xmldataprovider读取xml文件

如何在C ++中使用数组的虚拟初始化方法读取文件

如何在C#中使用通配符格式读取所有文件

如何在C#中使用Json.Net从文件读取Json集合

如何在 C 中使用 fscanf() 仅读取文本文件的某些部分

如何在Grails中使用CommonsMultipartFile读取文件的内容

如何在Python中使用熊猫跳过读取空文件

如何在Python 3中使用input()读取文件

如何在docker容器中使用熊猫读取csv文件

如何在python中使用pandas从csv文件中读取?

如何在VBscript中使用通配符查找和读取文件?

如何在grep命令中使用从文件中读取的行

如何在imacros中使用javascript读取文件名

如何在模板文件函数中使用变量代替文件?

如何在 NodeJS 12 Lambda 函数中使用 async/await 将 S3 JSON 文件流式读取到 postgreSQL?

如何读取大文件-逐行读取?

如何读取大文件-逐行读取?

如何在C ++文件中使用opencv函数并将其与Python绑定?

如何在C#中使用HttpClient读取WebAPI响应