通过函数 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);
我需要 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);