看起来你选择了错误的OpenMP结构。目标似乎是一次只允许一个线程在块中执行。这意味着该块意图是一个 关键区域 ,用于声明它的指令是 omp critical :
omp critical
#pragma omp critical { if(a = getmystring(fp)) fprintf(fpw, "A: %s\n", a); if(b = getmystring(fp)) fprintf(fpw, "B: %s\n", b); }