📄 ad_write.c
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* * * Copyright (C) 2004 University of Chicago. * See COPYRIGHT notice in top-level directory. */#include "adio.h"#ifdef HAVE_UNISTD_H#include <unistd.h>#endifvoid ADIOI_GEN_WriteContig(ADIO_File fd, void *buf, int count, MPI_Datatype datatype, int file_ptr_type, ADIO_Offset offset, ADIO_Status *status, int *error_code){ int err = -1, datatype_size, len; static char myname[] = "ADIOI_GEN_WRITECONTIG"; MPI_Type_size(datatype, &datatype_size); len = datatype_size * count; if (file_ptr_type == ADIO_INDIVIDUAL) { offset = fd->fp_ind; } if (fd->fp_sys_posn != offset) { err = lseek(fd->fd_sys, offset, SEEK_SET); /* --BEGIN ERROR HANDLING-- */ if (err == -1) { *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io", "**io %s", strerror(errno)); fd->fp_sys_posn = -1; return; } /* --END ERROR HANDLING-- */ } err = write(fd->fd_sys, buf, len); /* --BEGIN ERROR HANDLING-- */ if (err == -1) { *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io", "**io %s", strerror(errno)); fd->fp_sys_posn = -1; return; } /* --END ERROR HANDLING-- */ fd->fp_sys_posn = offset + err; if (file_ptr_type == ADIO_INDIVIDUAL) { fd->fp_ind += err; }#ifdef HAVE_STATUS_SET_BYTES if (err != -1 && status) MPIR_Status_set_bytes(status, datatype, err);#endif *error_code = MPI_SUCCESS;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -