c - 在多进程 scanf 的 MPI 中只接受一次输入并将垃圾值分配给其他?

标签 c gcc compiler-construction mpi

我正在尝试使用 scanf 编写 MPI 代码,它将单独为所有进程获取输入,但只有一个进程从用户那里获取输入,而其他进程则将垃圾值分配给该变量。程序如下

#include <stdlib.h>
#include <stdio.h>
#include "mpi.h"
#include<string.h>

int main(int argc, char* argv[]) 
{
int i, size, rank;
int arr;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("Enter the number\n");
scanf("%d",&i);

printf("%d\n",i);
MPI_Finalize();
exit(0);
}

最佳答案

stdin 仅转发到 rank 0。在任何情况下,从 stdin 读取都不是一个大写的坏主意,并且不受标准支持。

关于c - 在多进程 scanf 的 MPI 中只接受一次输入并将垃圾值分配给其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18802334/

相关文章:

mysql - 如果我添加或减去一个值,我的变量中的值就会消失(不打印)

c - 在多个 C 文件中使用外部变量

c - 为什么 gcc 不链接 SDL 2.0 C 项目? (苹果系统)

clang - 糟糕的 rand() 实现

java - JDK 编译错误

iphone - 用于 iOS 开发的 LLVM 与 GCC

c - 为什么获取信号量的值和 wait() 会出现问题

c++ - gcc -finline-functions 行为?

c - mongo c 驱动程序更新嵌套数组

c - "Hello World"在 C 中是如何工作的