C 更新用于传递给系统的for循环中的字符串
我正在MacOSX上工作,并在终端中使用bash。我用C语言编程,在for循环中使用system()时遇到问题。我意识到我尝试做的事情可以用shell脚本来完成,但我正在尝试并行化这个过程,目前我只知道如何用C语言进行openmp编程 一般的想法是调用一个可执行文件/程序,该程序有三个输入:整数、字符串和双精度。我想用各种输入调用程序100次。目前,我正试图弄清楚如何将一个字符串传递给system(),该字符串由for循环更新。我应该注意,用于输入的(“sub”)字符串也正在更新,以从不同的文件夹(格式为:folder0000、folder0001等)获取数据 我的尝试是这样的:C 更新用于传递给系统的for循环中的字符串,c,terminal,command,openmp,C,Terminal,Command,Openmp,我正在MacOSX上工作,并在终端中使用bash。我用C语言编程,在for循环中使用system()时遇到问题。我意识到我尝试做的事情可以用shell脚本来完成,但我正在尝试并行化这个过程,目前我只知道如何用C语言进行openmp编程 一般的想法是调用一个可执行文件/程序,该程序有三个输入:整数、字符串和双精度。我想用各种输入调用程序100次。目前,我正试图弄清楚如何将一个字符串传递给system(),该字符串由for循环更新。我应该注意,用于输入的(“sub”)字符串也正在更新,以从不同的文件
#include <stdio.h>
#include <string.h>
int main(){
int spot;
double X;
char command[50];
#pragma omp parallel for private(command, path)
for(X=0, spot=0; spot<100; X+=0.005, spot++){
char path[50];
strcpy(path, "/home/folder%04d", spot);
strcpy(command, "./program %d %s %lf", 50, path, X);
system(command);
}
return 0;
}
#包括
#包括
int main(){
内点;
双X;
char命令[50];
#pragma omp并行专用(命令,路径)
对于(X=0,spot=0;spot,它看起来像是您正在寻找的:
看起来您正在寻找:
非常感谢,这正是我所需要的。我相信该程序正在运行,但是,我不认为它正在并行运行,这是我需要研究的其他问题…再次感谢您的帮助。非常感谢,这正是我所需要的。我相信该程序正在运行,但是,我不认为它正在并行运行这是我需要调查的其他事情…再次感谢你的帮助。
sprintf(path, "/home/folder%04d", spot);
sprintf(command, "./program %d %s %lf", 50, path, X);