按函数MPI_send()发送time_t数据类型

时间:2015-01-30 17:48:30

标签: c++ mpi

我需要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数据类型的转换。吨。

1 个答案:

答案 0 :(得分:0)

使用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);