분류 전체보기 750

U2L프로젝트 NULL 이슈

유닉스로 개발된 C 소스를 리눅스에서 컴파일만 하고서 돌리면 잘 돌아갈까? 대부분 프로그램들은 잘 돌아가지만 몇몇 코드들은 손을 봐줘야 하는 것들이 있다. 리눅스에서는 sprintf 를 사용할 때도 유닉스와 다르게 동작해서 오류가 발생되는 경우가 있다. 유닉스에서는 멀쩡히 잘 돌아가던 프로그램을 리눅스에서 돌리면 오류가 발생되는 경우로서 sprintf()가 있다. memset(b, 0x00, sizeof(b)); sprintf(a, "name:%s" , b ); printf("%s\n", a ); 이런 소스의 경우 b 값이 NULL일 경우 유닉스에서는 아무 것도 찍히지 않는다. name: 이라고만 찍한다. 그러나 리눅스에서는 "(null)" 이라는 문자가 찍히게 되면서 name:(null) 이라고 찍힌다..

U2L 프로젝트 fclose() 이슈

유닉스 프로그램을 리눅스로 변환할 때 발생되는 이슈들 1. 변수가 NULL 일 때 access 하면 코어덤프가 발생되다. 유닉스에서는 이렇게 민감하지 않아서 coredump 가 나지는 않았았으나 linux 에서는 변수가 NULL 일 때 참조를 하면 바로 coredump 가 발생된다. 예를 들어 유닉스에서는 fclose(fp); 후에 다시 fclose(fp); 를 호출해도 코어덤프 발생되지 않았으나 리눅스에서는 짤없이 죽는다. 그래서 wrapper 함수를 만들어야 한다. int fn_fclose(FILE *_fp) { if( _fp != NULL && _fp->_fileno >= 0 ) return fclose(_fp); return 0; } 여기서 file structure pointer 변수가 fclo..

쉘에서 date 사용

기본 일자 포맷으로 출력할 때는 그냥 단순히> date -I 2020-02-22 date 명령어에서 포맷을 주려면 date뒤에 +로 시작한다. 포맷이 붙어 있을 경우 ' 로 감싸지 않아도 되지만 스페이스가 들어가면 ' 로 감싸줘야 한다.> date +'%F %T' 2020-02-22 13:23:53 $로 date 명령을 실행하여 변수처리를 할 수 있다.> echo $(date +%F_%T) 2020-02-22_13:24:23 > CUR_DATE=$(date +%F_%T) > echo $CUR_DATE 2020-03-21_13:34:23 동일한 효과를 얻을 수 있는 ` 문자로 date 명령을 실행할 수 있다.> CUR_DATE=`date +%F_%T > echo $CUR_DATE 2020-03-21_13:..

티맥스 서버가 수행중 죽을 때

티맥스 서비스를 호출했는데 느닷없이 프로그램이 죽었다. 정확하게 말하면 IPPR 서비스를 수행 중 해당 서버가 죽고 재기동 된다. 어떤 신호도 없이 서버가 죽는 경우에 뭐 부터 점검해야 하는 것인가. ulimit -a core file size (blocks, -c ) 0 stack size (kbytes, -s) 8192 여기서 스택사이즈가 너무 작게 잡혀 있을 경우 내부 변수를 선언해 나가다가 한계를 넘어가면 메모리 오류가 나면서 프로그램이 죽게 된다. tmax 계정의 .bash_profile 에 다음과 같이 스택사이즈를 늘려 준 후 재접속하고 tmax를 재기동 하면 오류 없이 거래가 통과되었다. ulimit -c 99999999 ulimit -s 143360 Linux 3.10.0 x86_64 Re..

[프로프레임] Conditions can't call the right function

프로프레임에서 dbio를 호출하였는데 오류가 발생하였다. 오류 번호로 리턴된 값은 -90001002 이고 오류메시지는 [DBIO] Conditions can't call the right function 이다. 어떤 경우에 이런 오류가 나오는 것일까? 처음 프로프레임 dbio 를 array fetch 로 작성하였을 때 관련한 배열처리 내부 함수들이 만들어 진다. 이런 array fetch dbio를 프로그램에 끌어다 사용하였을 것이다. 그 후에 개발자가 dbio 를 단건 fetch 로 변경하였다. 그리고 dbio를 컴파일 했다. 그러나 정작 이 dbio를 사용하고 있는 프로그램은 다시 컴파일을 하거나 재구성을 하지 않았다. 이런 경우에 프로그램이 실행될 때는 이전의 array fetch 함수를 계속 호출..

쿠알라룸푸르 공항에서 환승

말레이시아 쿠알라룸푸르 공항은 트랜스퍼하기 아주 쉽다. 비행기에서 내리면 바로 탑승동이다. 다른공항 처럼 다시 x-ray검사하고 탑승동으로 이동할 필요가 없어서 좋으네. 내가 비행기에서 내린 곳은 가운데 라운드형 상가가 있고 동서남북으로 네갈래 플랫폼이 있다. 크지는 않고 나름 아담하게 잘 꾸며져 있다. 2층에 간단한 식사를 할 수 있는 식당들이 있지만 부족하다. 중앙에 동그랗게 있는 정글워크는 아이디어는 좋으네. 여기공항에서 한국사람 엄청 갈아타는 듯. 여기저기서 한국말 많이 들리네. 한국에서 한 다섯시간 정도 날아와서 도착했는데 좀 지루 했지만 말레이시아 항공 기내식은 훌륭했다.날씨는 약간 후덥찌근하네. 짧은 옷 준비해서 와야 할 듯. 돌아다니다가 WEST ZONE 으로 이동하는 셔틀 기차 발견. 공..

레노버 노트북 서비스센터

레노버 노트북 서비스를 받아야하는 일이 생겨서 홈페이지를 검색해보니 많지는 않았다. 가장 가까운 곳이 강남서비스센터였다. 교대역과 강남역 중간 쯤에 애매한 곳에 있다. 난 교대역에서 내려서 5분 정도 걸어갔다. 사무실 규모가 작고 응대하는 카운터 직원이 적지만 그만큼 손님도 적었다. 나 뿐이어서 기다리거나 하는 불편함이 없었다. 서비스기사심도 친절하고 설명도 잘 해 주셨다. 안타깝게도 부품을 교환하게 된다면 비용 이 좀 비싼 느낌이었다. 그러나 삼성 같은 곳에 가도 부품교환비용은 마찬가지로 비쌀거다. 고장이 앗싸리 안 나는게 돈 버는거다. 레노버서비스센터위치 https://support.lenovo.com/kr/ko/solutions/ht100494

반응형