# PetscBinarySynchronizedWrite
writes to a binary file. 
## Synopsis
```
PetscErrorCode PetscBinarySynchronizedWrite(MPI_Comm comm, int fd, const void *p, PetscInt n, PetscDataType type)
```
Collective


## Input Parameters

- ***comm -*** the MPI communicator
- ***fd -*** the file
- ***n  -*** the number of items to write
- ***p -*** the buffer
- ***type -*** the type of items to write (`PETSC_INT`, `PETSC_REAL` or `PETSC_SCALAR`)





## Notes
Process 0 does a `PetscBinaryWrite()`

`PetscBinarySynchronizedWrite()` uses byte swapping to work on all machines.
Integers are stored on the file as 32 long, regardless of whether
they are stored in the machine as 32 or 64, this means the same
binary file may be read on any machine.

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


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


## See Also
 `PetscBinaryWrite()`, `PetscBinaryOpen()`, `PetscBinaryClose()`, `PetscBinaryRead()`, `PetscBinarySynchronizedRead()`,
`PetscBinarySynchronizedSeek()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/sys/fileio/sysio.c.html#PetscBinarySynchronizedWrite">src/sys/fileio/sysio.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/fileio/sysio.c)


[Index of all Sys routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
