gpt4 book ai didi

c - 如何使用 C 语言中的 read() 函数读取大文件

转载 作者:行者123 更新时间:2023-12-04 11:30:42 26 4
gpt4 key购买 nike

阿罗哈,

我是新来的,所以请放心。我正在尝试使用函数 read() 读取文件,然后使用 write() 读取文件或文件描述符。我的函数成功读取文件,但是当我尝试读取更大的文件(在我的示例中大小为 40,000 字节)时出现问题。

我认为我必须编写一个 while 循环,它将读取直到文件末尾,但我一直在思考如何......

(我在程序的 main 中打开文件或文件描述符)

我的函数(也转换二进制输入字符数据并写入 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));
}
}

最佳答案

您需要检查函数readwrite的返回值。它们返回读/写的字节数,该数可能小于您作为第三个参数传递的数字。 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;
}

关于c - 如何使用 C 语言中的 read() 函数读取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41859547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com