Ubuntu从一个文件中读取内容保存到buf数组里面,读取的字节数任意打印buf数组里面的内容
时间: 2024-09-10 14:24:01 浏览: 85
读取Java文件到byte数组的三种方法(总结)
在Ubuntu系统下,你可以使用C语言标准库中的`fread`函数从文件中读取内容,并将其保存到一个字符数组(buf)中。`fread`函数可以按照指定的大小从文件流中读取数据,并将读取的数据存储在提供的缓冲区(buf)中。以下是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
FILE *file;
char buf[1024]; // 假设我们的缓冲区大小为1024字节
size_t bytesRead; // 用于记录实际读取的字节数
// 打开文件
file = fopen("example.txt", "rb"); // 以二进制读模式打开文件
if (file == NULL) {
perror("Error opening file");
return -1;
}
// 从文件中读取数据
bytesRead = fread(buf, 1, sizeof(buf), file);
if (bytesRead < 1) {
perror("Error reading file");
fclose(file);
return -1;
}
// 读取成功,打印内容
buf[bytesRead] = '\0'; // 确保在字符串末尾添加空字符
printf("Read %zu bytes: %s\n", bytesRead, buf);
// 关闭文件
fclose(file);
return 0;
}
```
在这个例子中,我们首先包含了`stdio.h`头文件,以便我们可以使用文件操作函数。然后,我们定义了一个字符数组`buf`作为读取缓冲区,并打开了一个名为`example.txt`的文件。使用`fread`函数读取数据时,它会尝试从文件中读取`sizeof(buf)`字节的数据到`buf`数组中,并将实际读取的字节数存储在`bytesRead`中。如果读取成功,我们在字符串末尾添加一个空字符(`'\0'`),以确保它是一个正确的C字符串,然后打印出来。最后,不要忘记关闭文件。
阅读全文