通过函数 MPI_send() 发送 time_t 数据类型

Send time_t datatype by function MPI_send()

我需要 MPI_Send() 变量 fileChangedTime

    struct stat fileinfo;        
    string name = "foo.txt";

    time_t fileChangedTime = 0;
    if(-1 != stat(name.c_str(), &fileinfo)){
        fileChangedTime = fileinfo.st_mtime;
    }

我不确定 time_t 到 MPI 数据类型的转换。 T.

使用 MPI_Send 您可以传输任何数据。 MPI_Datatype 字段简单地指定 void* 指向的每个数据元素的大小作为第一个参数。

typedef struct {
  int   a;
  float b;
} my_t;
...
my_t m;
int error = MPI_Send((void*)&m, // data
                     sizeof(t), // size in of data in bytes
                     MPI_CHAR,  // or use MPI_BYTE or MPI_UNSIGNED_CHAR
                     0, 0, comm); 

因此,对于上面的示例,您可以通过以字节为单位指定数据大小和一些具有 1 字节大小的类型来发送任何数据。在你这样的情况下

int error = MPI_Send((void*)&fileChangedTime,  // data
                     sizeof(fileChangedTime),  // size in of data in bytes
                     MPI_BYTE,                 // or use MPI_BYTE or MPI_UNSIGNED_CHAR
                     0, 0, comm);