c++ - 并行 gnu 在 shell 脚本中传递参数

标签 c++ shell parallel-processing

我想将参数传递给 shell 脚本中的 C++ 程序,该脚本仅将其打印到控制台。但是,我想使用 gnu parallel 来做到这一点。目前我有一个 shell 脚本,

#!/bin/sh
parallel -k echo ::: 1 2 3 > cTest
parallel ./hello :::: cTest

我首先创建一个文件“cTest”,其中包含将传递给可执行文件“hello”的项目。

目前,上面的代码只打印空格。我试过,

parallel echo :::: cTest | ./hello

但这只会打印“2”(我也担心上面不会并行)。

有人知道如何让它工作吗?

最佳答案

这对我有用:

#!/bin/sh

cat <<EOF >hello.cpp

#include <iostream>

int main(int argc, char** argv) {
  std::cout << "Have " << argc << " arguments:" << std::endl;
  for (int i = 0; i < argc; ++i) {
    std::cout << argv[i] << std::endl;
  }
}

EOF
g++ hello.cpp -o hello

parallel -k echo ::: 1 2 3 > cTest
parallel ./hello :::: cTest

关于c++ - 并行 gnu 在 shell 脚本中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40944155/

相关文章:

c - 为什么 MPI_Sendrecv 会阻塞?

c - 使用 OpenMP 进行 LU 分解似乎很慢,需要建议

android - 在 Android Studio 上将您自己的库与 JNA 结合使用

iphone - 为什么以及何时应该在 iOS 应用程序中使用 C/C++ 代码?

C++ STL : Using map with priority_queue

php - PHP exec 和 shell_exec 的问题 - Shell 脚本执行

linux - shell脚本错误

c++ - 检查 time_t 是否在其他 time_t 之间并有一定误差

python - 为什么只有在管道传输 python 脚本的输出时才会出现 unicode 错误?

c# - 如何从 Parallel.ForEach 循环内部抛出异常?