我必须编写一个MPI c程序。尽管我已经添加了string.h,但我的编译器不能识别数据类型字符串。我想读通过命令行的字符串,并将其传递到下面从MPI中的命令行参数读取字符串c
int find_rows(char * file)
{
int length=0;
char buf[BUFSIZ];
FILE *fp;
fp=fopen(file, "r");
while (!feof(fp))
{
// null buffer, read a line
buf[0] = 0;
fgets(buf, BUFSIZ, fp);
// if it's a blank line, ignore
if(strlen(buf) > 1)
{
++length;
}
}
fclose(fp);
#ifdef DEBUG
printf("lFileLen = %d\n", length);
#endif
return length;
}
给这个函数的功能时,我有
char file[50] = "m5-B.ij";
,然后作品叫
nvtxs = find_rows(&file);
,但给我给分段错误
nvtxs = find_rows(argv[1]);
有人可以帮忙吗?
您是否将参数传递给'main()'?检查'fopen()'的返回值。 – hmjd 2013-04-22 08:01:42
是的。我可以使用fprintf或sscanf读取并打印argv [1]的值。我只是不能将它传递给函数 – LGG 2013-04-22 08:09:30