이 블로그 검색

2019년 3월 19일 화요일

iconv 때문에 망했다. 해결가능하신분이 있다면 답변좀,< 파랜드 택틱스 마법 파싱 프로그램이다. >


마법설명부분은 주석 제거하면 된다. 저 부분은 파택2에만 포함되어 있는 부분이다.

iconv가 아주 지랄같다. 

bash에서 head -c 20 |iconv -f euc-kr -t  하면 아주 잘 된다. 

그런데 glib에 있는 iconv를 불러서 사용하면 이 지랄이 난다. 

뭔가 16bit나 32bit computer문제에 little, big-endian 문제가 섞인거 같기는 한데...

어디에서 생긴 문제인지를 모르겠다. 


뭐 어쩌겠는가... 안 되면 어쩔 수 없는거지... 



ps:헥스에디터로 자기 속성에 맞는 브레스 마법을 모든 캐릭에게 얹어주니 게임이 아주 
빨리 진행되고 재미 있다. 


/*!
* \file a.c * \brief * * <+DETAILED+> * * \author KIM Hyeok (kh), ekh0324@gmail.com * * \internal * Created: 2019년 03월 18일 * Revision: none * Compiler: gcc * Organization: Konkuk University * Copyright: Copyright (c) 2019, KIM Hyeok * * This source code is released for free distribution under the terms of the * GNU General Public License as published by the Free Software Foundation. */ #include #include #include #include #include #include extern int errno; int main() { /* iconv_t ic = iconv_open("UTF-8", "CP949"); */ /* iconv_t ic = iconv_open("CP949", "UTF-8"); */ // iconv_t ic = iconv_open("UTF8//IGNORE", "CP949"); iconv_t ic = iconv_open("UTF-8", "CP949"); // iconv_t ic = iconv_open("UTF-8//TRANSLIT//IGNORE", "CP949//TRANSLIT//IGNORE"); // iconv_t ic2 = iconv_open("utf-8", "cp949"); if (ic == (iconv_t)(-1)) { perror("iconv_open"); return 1; } char buf[1000]; FILE * input = fopen("magic1.dat", "r"); char* strings = malloc(1000); short level, mana, firewater, windearth, lightdark; short min, max; char* filename= malloc(25); short sound, targettype, magictype,charactertype; char* description = malloc(21); char* outbuf= malloc(1000); char* inbuf = malloc(100); size_t insize,outsize; size_t result; // fread(inbuf, 1, 108, input); while(!feof(input)) { memset(inbuf, 0x00,100); insize = 20; outsize = 400; memset(inbuf, 0x00,insize); memset(strings, 0x00,1000); memset(outbuf, 0x00,1000); fread( inbuf, 1,insize, input); insize = strlen(inbuf); result = iconv(ic, &inbuf, &insize,& outbuf, &outsize); if (result < 0) { int err = errno; strerror_r(errno, buf, sizeof(buf) ); printf("result : %ld, errno : %d(%s)\n", result, errno,buf); return(-1); } else { fprintf(stderr, "[%s][(%ld)\n",outbuf, outsize); } memcpy(strings,outbuf, 300 ); memset(strings+300, 0x00, 10);; fread( &level, 2,1, input); fread( &mana, 2,1, input); fread( &firewater, 2,1, input); fread( &windearth, 2,1, input); fread( &lightdark, 2,1, input); fread( &min, 2,1, input); fread( &max, 2,1, input); insize = 12; fread( filename, 1,insize, input); filename[24] = '\0'; fread( &sound, 2,1, input); fread( &targettype, 2,1, input); fread( &magictype, 2,1, input); fread( &charactertype, 2,1, input); outsize = insize = 12; /* fread( inbuf, 1,insize, input); * iconv(ic, &inbuf, &insize, &description, &outsize); * description[20] = '\0'; */ printf("name:%s\n", strings); printf("배우는 레벨은 %d\n", level); printf("사용하는 마나는 %d\n", mana); if ( firewater>0 ) { printf("불마법 (+%d)\n", firewater); }else if (firewater <0 -firewater="" d="" if="" n="" printf="" windearth="">0 ) { printf("대기마법 (+%d)\n", windearth); }else if (windearth <0 -windearth="" d="" if="" lightdark="" n="" printf="">0 ) { printf("빛마법 (+%d)\n", lightdark); }else if (lightdark <0 -lightdark="" :="" d="" description="" filename="" max="" min="" n="" printf="" puts="" s="" span="">

2019년 3월 4일 월요일

USB 4 스펙이 공표되었다. (탐즈발)

USB 표준을 제정하는 USB Promoter Group은 2019년 중반에 USB 4 아키텍처로 옮겨갈 것이라 공표했다. 

새로운 빠른 인터페이스는 Thunderbolt3가 지원하며, USB 3.2 대역폭의 두배인 무려, 40Gbps 대역폭을 지원한다. 


대충 발번역하기로, USB 표준 제정에 공헌하는 인텔이 Thunderbolt3 표준을 USB 4로 넣기로 결정한 것으로 보인다. (내말)

인텔은 로열티를 받지 않기로 하였기 때문에, 많은 칩제조사들이 비용을 지불하지 않아도 될 것이다. (진작에 그러지, 2017년에 이미 로열티는 포기한듯.
물론 USB3 표준에 들어가는것에 대한 로열티를 포기한 것은 아니니 조금의 의미는 있음... )

USB4는 인증 된 USB Type-C 케이블을 사용하고 2레인 인터페이스에서 최대 40Gbps의 처리량을 보인다고 한다. 





이미 Type-C 케이블로 다 처리하고 있는 상황이고,  슬롯 옆에 이미지로 구분하고 있는 상황인데다가 썬더볼트처럼, 파워도 전송하고 있는 상황이니, 그냥 앗싸리, 넣는걸로 결정한듯함. 소비자들이 점점 혼동할 테니 의미있는 변화인듯 하다. 그런데 pci express 신호는 포함이 아닐 것 같은데 표준이 완전히 제정되고 나서 확인해보면 될것 같다. 

저 2레인의 인터페이스라는건, Type-A로도 20Gbps의 성능이 나올 것으로 보인다. 일단 현재 있는 프로토콜로는 이 정도 속도가 안나올 것으로 보이는데, pci express 위키문서를 봐도, 128b/130 인코딩 보다 더 큰 넘은 안보인다.  

그냥 클럭을 두배로 올리는 것 같은데... 여유가 있을지는 모르겠고, 
1.5m 이하에서만 사용되는 근거리 인터페이스가 될 것 같다.  

저렇게 발표해놓고, 그냥 4-lane을 쓰거나 할 수 도 있을 것 같은데, 핀수가 많으니까, 

음??? 


USB 3.2를 준수하는 물건도 안나오는 판에... 너무 빨리 진행되고 있는 것은 아닌가 싶기도 하다.  10Gbps x 2 도 표준 나오기 전에 만들은 물건들은 본것 같은데... 

음 어떻게 되려나... 

가장 많이 본 글