C 更新用于传递给系统的for循环中的字符串

C 更新用于传递给系统的for循环中的字符串,c,terminal,command,openmp,C,Terminal,Command,Openmp,我正在MacOSX上工作,并在终端中使用bash。我用C语言编程,在for循环中使用system()时遇到问题。我意识到我尝试做的事情可以用shell脚本来完成,但我正在尝试并行化这个过程,目前我只知道如何用C语言进行openmp编程 一般的想法是调用一个可执行文件/程序,该程序有三个输入:整数、字符串和双精度。我想用各种输入调用程序100次。目前,我正试图弄清楚如何将一个字符串传递给system(),该字符串由for循环更新。我应该注意,用于输入的(“sub”)字符串也正在更新,以从不同的文件

我正在MacOSX上工作,并在终端中使用bash。我用C语言编程,在for循环中使用system()时遇到问题。我意识到我尝试做的事情可以用shell脚本来完成,但我正在尝试并行化这个过程,目前我只知道如何用C语言进行openmp编程

一般的想法是调用一个可执行文件/程序,该程序有三个输入:整数、字符串和双精度。我想用各种输入调用程序100次。目前,我正试图弄清楚如何将一个字符串传递给system(),该字符串由for循环更新。我应该注意,用于输入的(“sub”)字符串也正在更新,以从不同的文件夹(格式为:folder0000、folder0001等)获取数据

我的尝试是这样的:

#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);