The MPI status object holds information about the received message.
**MPI_Status status**:
```c
status.MPI_SOURCE// message source rank
status.MPI_TAG// message tag
status.MPI_ERROR// receive status code
```
### Message Size Inquiry
**MPI_Get_count (MPI_Status \*status, MPI_Datatype datatype, int \*count)**
- Calculates how many **datatype** elements can be formed from the data in the message referenced by status
- Can be used with the status from **MPI_Recv** or **MPI_Probe**
---
title:MPI Probe
---
### MPI Probe
Blocks until a matching message appears without actually receiving the message:
**MPI_Probe (int source, int tag, MPI_Comm comm, MPI_Status \*status)**
One must still call **MPI_Recv** to receive the message and copy the data into the buffer.
When probing tells you that there is a message, you can use **MPI_Get_count** to determine its size, allocate a large enough receive buffer, and do a regular receive to have the data copied.