C でブレイン インタープリターを作成しようとしていますが、fseek を動作させることができません。何が間違っているのかわからないので、可能であれば fseek を使い続けたいと思います。fgetc を使用して各ブレインファック文字を個別にチェックし、x を使用して fgetc の値を保持しています。コードは次のとおりです。
#include <stdio.h>
main(int argc, char *argv[]){
argc--; argv++;
char array[3000];
char *program = array;
int yo = 0;
fpos_t pos;
FILE *fp;
if(*argv != NULL){
fp = fopen(*argv,"rb");
int x;
int z = 1;
while(z){
x = fgetc(fp);
if(x == 62){
++program;
}else if(x == 60){
--program;
}else if(x == 43){
++*program;
}else if(x == 45){
--*program;
}else if(x == 46){
putchar(*program);
}else if(x == 44){
*program=getchar();
}else if(x == 93){
if(*program != 0){
int yo = 1;
while(yo){
fseek(fp, -1, SEEK_CUR);
if(fgetc(x) == 93){
putchar(93);
yo++;
}else if(fgetc(x) == 91){
putchar(91);
yo--;
}
}
}
}else if(x == EOF){
break;
}
}
fclose(fp);
}else{
printf("Error: no input file.\n");
}
return 0;
}