File(文件模块)
<p><strong>File</strong></p>
<p>文件管理模块</p>
<p><strong>数据类型执行代码</strong>
<a href="https://github.com/qianyongjun895/HPIPS/tree/master/OpenMpi-Chain/ompi/file">https://github.com/qianyongjun895/HPIPS/tree/master/OpenMpi-Chain/ompi/file</a></p>
<p><strong>ompi_file_t执行架构</strong>
struct ompi_file_t {</p>
<pre><code>/* 基本 OBJ_* 接口 */
opal_object_t super;
/*创建此文件的通信器**/
struct ompi_communicator_t *f_comm;
/** 创建此文件的文件名 */
char *f_filename;
/** Amode 创建此文件的 */
int f_amode;
/** MPI_Info 创建此文件的。 请注意, 这是 * 不 * 什么应该从 OMPI_FILE_GET_INFO 返回! */
struct ompi_info_t *f_info;
/** 位标志 */
int32_t f_flags;
/** 在 Fortran 中的索引 &lt;-&gt; C 转换数组*/
int f_f_to_c_index;
/**错误处理程序。 此字段没有 &quot;f_&quot; 前缀, 因此 OMPI_ERRHDL_ * 宏可以找到它, 而不管它是通信、窗口还是文件. */
struct ompi_errhandler_t *error_handler;
/** 错误处理程序的类型。 此字段没有 &quot;f_&quot; 前缀, 原因与字段 error_handler 相同。 */
ompi_errhandler_type_t errhandler_type;
/**指示我们正在使用的 IO 组件的版本 (这指示在下面的联盟中查看什么成员) */
mca_io_base_version_t f_io_version;
/** 用于在每个文件处理基础上保护对选定组件的访问的互斥体 */
opal_mutex_t f_mutex;
/** 选定的组件 (请注意, 这是一个联合)--我们需要这一点来添加和删除组件列表中当前正在使用的组件的 io 框架的进展海豚. */
mca_io_base_components_t f_io_selected_component;
/** 选定的模块 (请注意, 这是一个联合) */
mca_io_base_modules_t f_io_selected_module;
/**允许选定的模块缓存文件上的数据 */
struct mca_io_base_file_t *f_io_selected_data;</code></pre>
<p>};</p>
<p><strong>ompi_predefined_file_t 定义</strong>
struct ompi_predefined_file_t {struct ompi_file_t file;char padding[PREDEFINED_FILE_PAD - sizeof(ompi_file_t)];
}
typedef struct ompi_predefined_file_t ompi_predefined_file_t</p>
<p><strong>初始化文件管理模块</strong>
int ompi_file_init(void)</p>
<p><strong>打开文件</strong>
int ompi_file_open(struct ompi_communicator_t <em>comm, const char </em>filename, int amode, struct ompi_info_t *info, ompi_file_t **fh)</p>
<p><strong>设置问价名称</strong>
int ompi_file_set_name(ompi_file_t <em>file, char </em>name)</p>
<p><strong>关闭文件</strong>
int ompi_file_close(ompi_file_t **file)</p>
<p><strong>结束文件操作</strong>
int ompi_file_finalize(void)</p>
<p><strong>判断文件是不是有效</strong>
tatic inline bool ompi_file_invalid(ompi_file_t *file)</p>