int MPI_Send(void *buf, int count, MPI_Datatype datatype, 
        int dest, int tag, MPI_Comm comm) 
int MPI_Recv(void *buf, int count, MPI_Datatype datatype, 
        int source, int tag, MPI_Comm comm, MPI_Status *status)
  
| MPI Datatype | C Datatype | 
| MPI_CHAR | signed char | 
| MPI_SHORT | signed short int | 
| MPI_INT | signed int | 
| MPI_LONG | signed long int | 
| MPI_UNSIGNED_CHAR | unsigned char | 
| MPI_UNSIGNED_SHORT | unsigned short int | 
| MPI_UNSIGNED | unsigned int | 
| MPI_UNSIGNED_LONG | unsigned long int | 
| MPI_FLOAT | float | 
| MPI_DOUBLE | double | 
| MPI_LONG_DOUBLE | long double | 
| MPI_BYTE | |
| MPI_PACKED | 
typedef struct MPI_Status { 
  int MPI_SOURCE; 
  int MPI_TAG; 
  int MPI_ERROR; 
};
 
int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, 
        int *count)
 
MPI_Get_count takes as arguments the status returned by MPI_Recv and the type of the received data in datatype, and returns the number of entries that were actually received in the count variable.