---
title: "fblockread | open.mp"
description: "从文件读取原始数据块（不处理编码和行终止符）。"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fblockread
language: zh-CN
---

# fblockread

## 描述

此函数允许从文件中读取原始数据块（不处理编码和行终止符）。

| 参数 | 说明 |
| --- | --- |
| File:handle | 通过 fopen()打开的文件句柄 |
| buffer | 存储读取数据的缓冲区 |
| size = sizeof (buffer) | 要读取的数据单元数量（默认缓冲区大小） |

## 返回值

读取的数据单元数量，文件末尾时返回 0

## 示例

```c
// 定义枚举结构
enum _:some_enum
{
    some_data1,
    some_data2[20],
    Float:some_data3
}

// 声明数据容器
new some_data[some_enum];

// ...

// 以只读模式打开二进制文件
new File:handle = fopen("file.bin", io_read);

// 声明文件长度变量
new file_len;

// 验证文件是否成功打开
if (handle)
{
    // 获取文件总长度
    file_len = flength(handle);

    // 校验文件尺寸与数据结构匹配
    if (file_len == (some_enum * 4))
    {
        // 执行块读取操作
        fblockread(handle, some_data);
    }
    else
    {
        print("文件\"file.bin\"与数据结构不兼容");
    }

    // 关闭文件句柄
    fclose(handle);
}
else
{
    print("无法打开文件\"file.bin\"");
}
```

## 注意事项

注意

使用无效句柄将导致服务器崩溃！请通过[fopen](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fopen)或[ftemp](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/ftemp)获取有效句柄

## 相关函数

-   [fopen](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fopen): 打开文件
-   [fclose](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fclose): 关闭文件
-   [ftemp](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/ftemp): 创建临时文件流
-   [fremove](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fremove): 删除文件
-   [fwrite](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fwrite): 写入文件
-   [fread](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fread): 读取文件
-   [fputchar](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fputchar): 写入单个字符到文件
-   [fgetchar](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fgetchar): 从文件读取单个字符
-   [fblockwrite](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fblockwrite): 写入数据块到文件
-   [fseek](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fseek): 定位文件指针位置
-   [flength](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/flength): 获取文件长度
-   [fexist](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fexist): 检查文件是否存在
-   [fmatch](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fmatch): 检查文件名模式匹配
-   [ftell](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/ftell): 获取当前文件指针位置
-   [fflush](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fflush): 刷新文件缓冲区到磁盘
-   [fstat](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fstat): 获取文件大小和时间戳
-   [frename](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/frename): 重命名文件
-   [fcopy](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fcopy): 复制文件
-   [filecrc](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/filecrc): 计算文件 32 位 CRC 校验值
-   [fattrib](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fattrib): 设置文件属性
-   [fcreatedir](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/fcreatedir): 创建目录
