int get_elf_header(Elf32_Ehdr* p_Elf32_hdr, FILE* p_file) { int nbread; nbread = fread(p_Elf32_hdr, sizeof(elf_Ehdr), 1, p_file); if (nbread != 1) { fprintf(stderr, "Error : while reading ELF header (fread() returned %d)\n", nbread); exit(-1); } invert2(p_Elf32_hdr->e_type); /* $$$$KMK: bad code !!! Endianess dependant ! */ invert2(p_Elf32_hdr->e_machine); invert4(p_Elf32_hdr->e_version); invert4(p_Elf32_hdr->e_entry); invert4(p_Elf32_hdr->e_phoff); invert4(p_Elf32_hdr->e_shoff); invert4(p_Elf32_hdr->e_flags); invert2(p_Elf32_hdr->e_ehsize); invert2(p_Elf32_hdr->e_phentsize); invert2(p_Elf32_hdr->e_phnum); invert2(p_Elf32_hdr->e_shentsize); invert2(p_Elf32_hdr->e_shnum); invert2(p_Elf32_hdr->e_shstrndx); return (p_Elf32_hdr->e_type == ET_EXEC) && (p_Elf32_hdr->e_machine == EM_SPARC) && (p_Elf32_hdr->e_version == EV_CURRENT) && (p_Elf32_hdr->e_ident[EI_CLASS] == ELFCLASS32) && (p_Elf32_hdr->e_ident[EI_DATA] == ELFDATA2MSB) && (p_Elf32_hdr->e_ident[EI_VERSION] == EV_CURRENT); }
int main() { printf("Start...."); start: printf("\n(input) "); //계산기 프로그램 시작 scanf("%s", in1); str_in1 = strlen(in1); c_hoice(); if (chosen != 1){ scanf("%s", in2); str_in2 = strlen(in2); scanf("%s", in3); str_in3 = strlen(in3); check_sign_in1(); check_sign_in3(); re_array_in1(); re_array_in3(); separate(); if(in2[0] == '-'){ if(minus_sign_count == 0) in2[0] = '-'; else if(minus_sign_count == 1){ if(if_minus_first == 1){ in2[0] = '+'; when_put_minus =1;} if(if_minus_last == 1) in2[0] = '+';} else{ in2[0] = '-'; when_remove_minus =1;}} else if(in2[0] == '+'){ if(minus_sign_count == 0) in2[0] = '+'; else if(minus_sign_count == 1){ if(if_minus_first == 1) in2[0] = '-'; if(if_minus_last == 1) in2[0] = '-';} else{ in2[0] = '+'; when_put_minus=1;}} else if(in2[0] == '*'){ if(minus_sign_count == 0 || minus_sign_count == 2) in2[0] = '*'; else if(minus_sign_count == 1){ in2[0] = '*'; when_put_minus=1;}} else if(in2[0] == '/'){ if(minus_sign_count == 0 || minus_sign_count == 2) in2[0] = '/'; else if(minus_sign_count == 1){ in2[0] = '/'; when_put_minus=1;}} else if(in2[0] == '%'){ if(minus_sign_count == 0 || minus_sign_count == 2) in2[0] = '%'; else if(minus_sign_count == 1){ in2[0] = '%'; when_put_minus=1;}} switch (in2[0]) { case '+' : { invert1(); convert1(); plus(); convert2(); invert2(); break; } case '-' : { invert1(); compare(); convert1(); minus(); convert2(); invert2(); break; } case '*' : { invert1(); invert1_mul_s(); multiply(); invert2(); invert2_mul_s(); break; } case '/' : { invert1(); compare(); convert1(); divide(); convert2(); invert2(); break; } case '%' : { invert1(); compare(); convert1(); remain(); convert2(); invert2(); break; } default: ; } printf(" = "); if(when_put_minus == 1) printf("-"); // if(when_remove_minus == 1) //여기서 - 부호 하나를 배열에서 빼주는 명령어 쓸 수 없을까? if (daeso == 1) printf("-"); comma(res_j); if (p != 0) {printf("."); comma(res_s);} } initialization(); goto start; return 0; }
int main() { printf("Start...."); start: printf("\n(input) "); //계산기 프로그램 시작 input(); error(); if(again == 1) { initialization(); goto start; } c_hoice(); if (chosen != 1){ //in1에 입력받은 문자가 1자리 대소문자가 아닌 경우 var_cal(); if (var_cal_switch == 1) { printf(" = error\n"); initialization(); goto start; } check_sign_in1(); // input1 +/- 부호 체크 check_sign_in3(); // input3 +/- 부호 체크 re_array_in1(); // 다항 연산 고려 순서 바꿔 저장 re_array_in3(); // 다항 연산 고려 순사 바꿔 저장 separate(); which_sign(); switch (in2[0]) { case '+' : { invert1(); convert1(); plus(); convert2(); invert2(); break; } case '-' : { invert1(); compare(); convert1(); minus(); convert2(); invert2(); break; } case '*' : { invert1(); invert1_mul_s(); multiply(); invert2(); invert2_mul_s(); break; } case '/' : { dividing(); break; } case '%' : { remain2(); break; } default: ; } printf(" = "); if(when_put_minus == 1) printf("-"); if (daeso == 1) printf("-"); comma(res_j); if (p != 0) {printf("."); comma(res_s);} } initialization(); goto start; return 0; }