Skip to main content
`Ctrl`+`K`

# PetscBinarySynchronizedWrite

writes to a binary file.

## Synopsis

    PetscErrorCode PetscBinarySynchronizedWrite(MPI_Comm comm, int fd, const void *p, PetscInt n, PetscDataType type)

Collective, No Fortran Support

## Input Parameters

- comm - the MPI communicator

- fd - the file

- n - the number of items to write

- p - the buffer, an array of the type that matches the value in `type`

- type - the type of items to write (`PETSC_INT`, `PETSC_REAL` or `PETSC_SCALAR`)

## Notes

MPI rank 0 does a `PetscBinaryWrite()` the values on other MPI processes are not used

The files are written using big-endian ordering to the file. On little-endian machines the numbers are converted to the big-endian format when they are written to disk. When PETSc is configured using `./configure with --with-64-bit-indices` the integers are written to the file as 64-bit integers, this means they can only be read back in when the option `--with-64-bit-indices` is used.

Because byte-swapping may be done on the values in data it cannot be declared const

This is NOT like `PetscSynchronizedFPrintf()`! This routine ignores calls on all but MPI rank 0, while `PetscSynchronizedFPrintf()` has all MPI processes print their strings in order.

## See Also

`PetscBinaryWrite()`, `PetscBinaryOpen()`, `PetscBinaryClose()`, `PetscBinaryRead()`, `PetscBinarySynchronizedRead()`, `PetscBinarySynchronizedSeek()`

## Level

developer

## Location

src/sys/fileio/sysio.c

Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages