1
我正在使用Mac OSX並在終端中使用bash。我在C編程,並且在for循環中使用system()時遇到問題。我意識到我正在嘗試做的事情可以用shell腳本完成,但我正在嘗試並行化該過程,而目前我只知道如何使用C中的openmp編程來完成此工作。更新for循環中的字符串,用於傳遞給系統
總體思路是調用一個可執行文件./program,該程序有三個輸入:一個整數,一個字符串和一個double。我想用各種輸入來調用程序100次。目前我很想知道如何將字符串傳遞給由for循環更新的system()。我應該注意到用於輸入的(「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;
}
一個錯誤,我得到的是顯而易見的,如果你知道作品(我不真正)如何strcpy的是,我傳遞的參數太多。它只喜歡採取2:strcpy(字符串1,字符串2)。我受到啓發,在理解strcpy之前嘗試這個方法,通過模仿如何打印double,整數等。
這是否可以通過其他方式完成我想要做的事情?感謝您提供的任何幫助。
非常感謝你,這正是我需要的。我相信該程序正在運行,但是,我不認爲它正在並行運行,這是我需要考慮的其他事情......再次感謝您的幫助。 –