반응형

컴퓨터활용 238

전역변수와 정적변수의 차이점 : Difference Between Static & Global Variable

함수안에 선언된 변수는 그 함수를 빠져 나가면 사라진다. 할당되었던 메모리는 해제되고 저장되어 있던 값도 사라진다. 이러한 특성 때문에 자동변수(auto variable) 이라고 부르기도 한다. 그 함수 내에서만 유효하다고 해서 지역변수라고 부르기도 한다. 따라서 그 함수로 들어올 때 마다 변수가 다시 메모리 할당된다. 그래서 함수간 또는 파일간에 변수 값을 공유하고자 할 때는 전역변수(global variable) 또는 정적변수(static variable)를 사용하는데 이 두 변수간의 차이를 정확히 이해를 하고 사용해야 한다. 전역변수와 정적변수는 lifetime은 동일하다. 즉, 해당 프로그램이 죽을 때까지 한번 할당된 변수 메모리와 값은 유지된다는 점이다. 반면에 scope는 서로 다르다. 전역변..

dlsym error Function not implemented

dlcall 할 때 아래와 같은 오류가 발생했다면 function name 이 해당 라이브러리( .so) 안에 없는 경우이다. 실제로 그러한 이름의 function을 extern 으로 선언되어 있지 않거나 틀린 함수명으로 호출한 경우이다. Shared Library Name=[FEE][FEE09199_Main] BS_DlOpen START dlsym error Function not implemented (FEE09199_Main) 위의 경우 FEEO9199_Main 이 파일안에 extern 함수로 존재했으나 문자 O를 숫자 0 으로 잘못 타이핑한 경우였다.

배치실행파일의 입력값, 결과값 받기

쉘프로그램에서 입력 인자의 개수를 받아서 처리하는 부분 if [ $# -lt 1 ]; then echo "인자개수는 2개가 입력 되어야 합니다.인자갯수 [$#]"; echo " ex) $0 20110404 1 "; exit 100; fi echo "입력받은 인자 [$1] [$2]" 실행파일을 실행하고 그 결과를 받아서 에러처리 # 결과값 확보 ret=$?; # 프로그램 오류 확인 if [ $ret -ne 0 ]; then echo "오류종료"; echo "exit $ret"; exit 100; fi # 프로그램 정상 확인 if [ $ret -eq 0 ]; then echo "정상종료"; echo "exit $ret"; exit $ret; fi

[옴니아] Windows Mobile 내장 명령

일반 명령 Bluetooth manager:\windows\BTcplCE.exe Calculator:\windows\MobileCalculator.exe Calendar: \windows\calendar.exe Calibration screen: \windows\welcome.exe Camera: \windows\xxxxCamera.exe* Communication Manager: \windows\wrlsmgr.exe 연락처: \windows\poutlook.exe Contacts?outres.dll -10000 일정: \windows\poutlook.exe calendar 작업: \windows\poutlook.exe tasks Excel Mobile: \windows\pxl.exe File Explo..

ORA-01003 에러 발생 원인 및 조치

ORA-01003 에러 발생 원인 및 조치 현황에 대한 참고할 만한 글이 있다. 주로 발생되는 경우로는 배치서버에서 가결산 작업 중 금리제공모듈, 고객정보모듈 등 에서 ORA-01003 오류 다수 발생되었다. ORA-01003 발생 원인은 배치 프로그램 또는 TP서비스 구동 중 DB(서버) 메모리 내의 테이블 정보와 AP(서버) 프로그램단 SQL내에서 참조하는 테이블 정보가 서로다른 경우 발생 되므로 이런 경우는 대부분 프로그램 구동중에 테이블 재생성 작업을 수행하는 경우에 발생 가능하다. 프로젝트에서 데이타 전환을 하는 과정에서 현재 데이터 재적재(전환원본DB -> 운영DB)가 일중 수시로 진행되고 있고, 이 재적재는 내부적으로 테이블 재생성(drop & create)과정을 거치게 됨으로써 발생하고 있..

프로프레임 모듈 이관/컴파일 순서

프로프레임에서 프로그램을 컴파일 하는 순서가 있다. 이것은 C 코딩을 직접 해 본 사람이라면 별로 어려운 문제가 아닐 터이나 프로프레임 스튜디오와 같은 UI툴을 이용하여 처음 C언어를 접하고 개발을 시작한 사람이라면 이해하기 어려울 수가 있다. 운영환경으로 헤더, c프로그램 소스가 이관된 후 컴파일 한 후에 dlupdate 하는 환경이라면 프로그램을 컴파일하는 순서와 프로그램을 운영환경에 이관하는 순서는 동일하다. DBIO -> 모듈의 입출력구조체 -> 모듈 의 순서로 이관을 해야 하고 입출력 구조체가 또 다른 서브구조체를 include 하고 있다면 서브구조체 부터 이관해 줘야 한다. 이것은 c언어의 구조가 include 라는 방식의 구조를 하고 있기 때문인데 예를 들어 A프로그램이 B모듈을 EMB에서 ..

프로프레임 리소스권한 관리

모듈에는 내부모듈과 외부모듈로 구분할 수 있다. 내부모듈은 팀내부에서만 사용하는 모듈, 대부분의 경우 로직이 너무 길어서 분리한 경우일 수가 많다. 외부모듈은 타팀제공모듈이라고도 하며 다른 팀에서 모듈을 호출해서 사용할 수 있도록 허용한 모듈이다. 타팀의 원장을 직접 읽지 못 하도록 가이드하고 있으므로 타팀에게 원장의 데이타를 제공하거나 받아들이는 용도의 모듈이 대표적인 예이다. 그런데 간혹 내부모듈과 외부모듈을 혼동하여 타팀에서 나의 내부모듈을 EMB에 끌어다 사용해 버리는 경우가 있다. 물론 프로그램 사용에는 문제는 없겠으나 향후 유지보수시에 문제가 발생될 수 있다. 업무 변경으로 인하여 내부모듈 입출력 구조체를 변경할 필요가 있을 경우 내부팀원들끼리 모여서 의견 공유하고 함께 로직을 반영하고 컴파일..

DBIO 내부 오류 메시지

프로프레임 DBIO를 호출한 후 오류 리턴 받았을 때 참고할 수 있는 내부 오류에 대한 메시지 이다. HTML clipboard 에러코드 에러 코드 Macro명 원인 해결방안 -90000001 PDB_ERR_UNKNOWN 알수 없는 에러 코드 정의 되지 않은 에러 코드 -90000002 PDB_ERR_CONNECTION DB 연결 정보를 가져올 수 없음 사이트 커스터마이징 소스인 pfmDbioConnectDB.c 의 pfmDbioConnectDBInput 부분의 passwd_runtime / passwd_compile / passwd_srcgen 설정 확인(Sybase 는 passwd_runtime / passwd_srcgen 설정 확인) -90000003 PDB_ERR_CONNECTION_TDLCALL..

PLS-S-00201, identifier 테이블명 must be declared 오류

테이블을 신규 생성하고 최초에 DBIO를 하나 만들어서 컴파일을 하면 다음과 같은 오류 메시지를 만날 수 있다. PROC 프로그램 속에서 사용된 변수(identifier)가 도통 뭔지 알 수 없다는 메시지이고 보면 원인을 쉽사리 짐작할 수 있다. 어쨌거나 이 메시지는 테이블이 없다는 메시지 이므로 DBIO컴파일할 때 접속하는 유저ID가 무엇인지 확인을 하고 이 유저에게 GRANT를 주고 SYNONYM을 주도록 DBA 에게 요청을 해야 해결 될 수 있다. 일반 변수라면 (혹시 테이블의 컬럼) 해당 컬럼이 실제로 존재하는 지 테이블 스키마를 점검해야 한다. -----> 2. Compile the source generated awhile ago >>> Begins to process pfmDbioAFEE_P..

커서오픈 후 예외처리 기술 필요

안녕하세요? 이종구 부장님의 명(?) 을 받고 메일을 보냅니다. 혹시 해당 되시는 분이 있다면 소스를 점검해 주시길 바랍니다. 커서오픈할 경우 프로프레임 스튜디오에서 생성되는 기본 소스에는 에러코드를 세팅하는 부분이 없습니다.프로프레임에서는 기본 틀만 소스생성하고 세부적인 코딩은 개발자가 해야 하는 몫입니다. 대부분의 개발자들이 while 루프 안 쪽에는 코딩을 많이 하시지만 이 커서오픈 부분의 에러처리는간과하고 그냥 내버려 두시는 경우가 많은데 바람직하지 않습니다. 실제로 커서 오픈하다가 오류가 발생하게 되면 단말화면에 제대로된 오류를 받아 볼 수 없기 때문에 난감한 상황에 빠지게 됩니다. 커서오픈할 때 오류가 발생되면 에러코드를 세트하지 않고 오류 return 해 버렸기 때문에 프레임웍에서 다음과 같..

반응형