以显式指定的偏移量写入文件
函数定义
- 以阻塞非聚合模式显式指定的偏移量写入文件。
MPI_File_write_at(MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
PMPI_File_write_at(MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
- 以阻塞聚合模式显式指定的偏移量写入文件。
MPI_File_write_at_all(MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
PMPI_File_write_at_all(MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
- 在一个分离的集合例程的开始部分,以显式指定的偏移量写入文件。
MPI_File_write_at_all_begin(MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype)
PMPI_File_write_at_all_begin(MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype)
- 在一个分离的集合例程的结束部分,以显式指定的偏移量写入文件。
MPI_File_write_at_all_end(MPI_File fh, const void *buf, MPI_Status *status)
PMPI_File_write_at_all_end(MPI_File fh, const void *buf, MPI_Status *status)
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
---|---|---|---|
fh |
文件(句柄) |
非空 |
输入 |
offset |
偏移量 |
整数 |
输入 |
*buf |
缓冲区的初始地址 |
非空 |
输入 |
count |
缓冲区中的元素数 |
非负整数 |
输入 |
datatype |
每个缓冲元素的数据类型(句柄) |
非空 |
输入 |
*status |
Status对象(句柄) |
非空 |
输出 |
返回值
- 成功:返回MPI_SUCCESS。
- 失败:返回错误码。
错误码
错误码 |
描述 |
---|---|
MPI_ERR_NO_SUCH_FILE |
文件不存在 |
MPI_ERR_BAD_FILE |
无效的文件名 |
MPI_ERR_FILE |
无效文件句柄 |
MPI_ERR_ARG |
其他类型的无效参数 |
MPI_ERR_AMODE |
不支持的访问模式 |
MPI_ERR_BUFFER |
无效buffer参数 |
MPI_ERR_COUNT |
无效count参数 |
MPI_ERR_TYPE |
无效类型参数 |
MPI_ERR_DIMS |
维度不合理 |
MPI_ERR_NO_SPACE |
空间不足 |
MPI_ERR_NO_MEM |
内存错误 |
MPI_ERR_IO |
其他I/O错误 |
MPI_ERR_ACCESS |
权限被拒绝 |
MPI_ERR_IN_STATUS |
已存在分离式操作开始 |
MPI_ERR_OTHER |
其他错误 |
注意
- 中间件不存在collective与indepent的严格划分。
- begin与end以file为核心进行对应,begin函数需要在调用end函数之后,才能再次调用。
- 若文件设置了视图,则读写时需要视图保持一致,且设置视图后,读写的基本单位为MPI_File_set_view / PMPI_File_set_view接口中的etype。