Tmax
|
|
- 상종 창
- 5 years ago
- Views:
Transcription
1 Tmax FDL Reference Guide Tmax v5.0 SP1 Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved.
2 Copyright Notice Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 263 분당스퀘어 (AK 프라자 ) 12 층 Restricted Rights Legend All TmaxSoft Software (Tmax ) and documents are protected by copyright laws and the Protection Act of Com puter Programs, and international convention. TmaxSoft software and documents are made available under the terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd. 이소프트웨어 (Tmax ) 사용서의내용과프로그램은저작권법, 컴퓨터프로그램보호법및국제조약에의해서보호받고있습니다. 사용서의내용과여기에된프로그램은 TmaxSoft Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용서의전부또는일부분을 TmaxSoft의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tmax, Tmax WebtoB and JEUS are registered trademark of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Tmax, Tmax WebtoB 와 JEUS 는 TmaxSoft Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. Open Source Software Notice This product includes various open source software that has been developed and/or licensed by OpenSSL, RSA Data Security, Inc., Apache Foundation, or Jean-loup Gailly and Mark Adler. TmaxSoft fully respects the aforementioned parties and the open source software used in this product. More details can be found within the directory ${INSTALL_PATH/license/oss_licenses 본제품은 OpenSSL, RSA Data Security, Inc., Apache Foundation 및 Jean-loup Gailly와 Mark Adler 에의해개발또는라이선스된오픈소스소프트웨어를포함합니다. 오픈소스소프트웨어와개발자에대해경의를표합니다. 관련상세정보는제품의디렉터리 ${INSTALL_PATH/license/oss_licenses 에기재된사항을참고해주십시오. 안내서정보안내서제목 : Tmax FDL Reference Guide 발행일 : 소프트웨어버전 : Tmax v5.0 SP1 안내서버전 : v2.1.1
3 내용목차 안내서에대하여... v 제1장 소개 개요 C 구조체와필드버퍼 FDL 테이블생성 명령어 예제... 5 제2장 FDL 함수 fballoc fbbufop fbbufop_proj fbcalcsize fbchg_tu fbchg_tut fbdelall fbdelall_tu fbdelete fbextread fbfldcount fbfprint fbfree fbftos fbget fbgetalloc_tu fbgetalloc_tut fbget_fbsize fbget_fldkey fbget_fldname fbget_fldno fbget_fldtype fbgetlast_tu fbget_strfldtype fbget_tu fbget_tut fbget_unused fbget_used fbgetf fbgetlen fbgetnth fbgetntht Tmax iii
4 2.33. fbgetval fbgetvali fbgetval_last_tu fbgetvall_tu fbgetvals fbgetvals_tu fbgetvalt fbinit fbinsert fbisfbuf fbispres fbkeyoccur fbmake_fldkey fbnext_tu fbprint fbput fbputt fbrealloc fbread fbsnull fbstelinit fbstinit fbstof fbstrerror fbtypecvt fbupdate fbwrite getfberrno getfberror 색인 iv Tmax FDL Reference Guide
5 안내서에대하여 안내서의대상 본안내서는 Tmax ( 이하 Tmax) 의 FDL(Field Definition Language) 함수를이용하여프로그램을구현하는개발자를대상으로기술한다. FDL 함수는필드버퍼를사용하여서로다른프로세스간에데이터를교환하기위해필드를조작 ( 저장, 수정, 삭제 ) 하는데사용하는함수이다. 개발자가이러한 FDL 함수의정의와사용예제프로그램을참조하여 FDL의모든기능을활용함으로써효율적인프로그램을구현하는데도움을주고자한다. 안내서의전제조건 본안내서는 Tmax 시스템에대한전반적인이해와 Tmax 시스템이제공하는각종기능및특성에대한습득을위한기본서이다. 본안내서를원활하게이해하기위해서는다음과같은사항을미리알고있어야한다. 미들웨어 (Middleware) 및 UNIX 시스템에대한이해 Tmax 의기본개념이해 Java, C 프로그래밍의이해 안내서의제한조건 본안내서를읽기전에 Tmax 의기본개념을숙지하고있어야한다. 실무에서의구체적인사용방법이나 관리및운용에관한사항은각제품의안내서를참고한다. 참고 Tmax 시스템개발에대한기본적인내용은 "Tmax Administration Guide" 나 "Tmax Application Devel oment Guide" 를참고한다. Tmax에서제공하는명령어와 C API에대한은 Tmax Reference Guide 를참고한다. 안내서에대하여 v
6 안내서구성 Tmax FDL Reference Guide는총 2개의장으로구성되어있다. 각장의주요내용은다음과같다. 제1장 : 개요 FDL의전반전인내용에대해한다. 제 2 장 : FDL 함수 FDL 에서사용하는 API 함수에대해기술한다. vi Tmax FDL Reference Guide
7 안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한메일계정, 웹사이트, 다른장및절참고메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참조또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 [ ] 옵션인수값 선택인수값 안내서에대하여 vii
8 시스템사용환경 요구사항 Platform IBM AIX 5.x HP-UX 11.xx Solaris 7~9 (SunOS 5.7~5.9) Hardware 최소 120MB 하드디스크공간 256MB 이상메모리공간 1GB 이상하드디스크와 512MB 이상메모리공간권장 Database Oracle 9i 또는 10g viii Tmax FDL Reference Guide
9 관련안내서 안내서 Tmax Administration Guide Tmax Application Development Guide Tmax Reference Guide Tmax를이용하기위한환경설정을하는방법과시스템운영방식을기술한안내서이다. Tmax 애플리케이션프로그램개발에사용하는 API의개념및사용법과예제를기술한안내서이다. Tmax 애플리케이션프로그램개발에사용하는클라이언트와서버의연결, 통신에서사용하는함수에대한사용방법과예제를기술한안내서이다. 안내서에대하여 ix
10 연락처 Korea TmaxSoft Co., Ltd 263 BundangSquare (AK Plaza) 12th floor, Seohyeon-dong, Bundang-gu, Seongnam-si, Gyeonggi-do, South Korea Tel: Fax: Web (Korean): 기술지원 : USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ U.S.A Tel: Fax: info@tmaxsoft.com Web (English): Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, Mita, Minato-Ku, Tokyo, Japan Tel: Fax: info.jp@tmaxsoft.com Web (Japanese): x Tmax FDL Reference Guide
11 China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan, Chaoyang District, Beijing, China, China Tel: ~8 Fax: Web (Chinese): ASEAN Office TmaxSoft Pte. Ltd. 30 Cecil Street, Level 15 Unit 05 Prudential Tower, Singapore Singapore Tel: Fax: Web (English): 안내서에대하여 xi
12
13 제 1 장소개 1.1. 개요 데이터형과그유형에할당되는메모리의양은각각의플랫폼마다다르다. 이러한메모리할당방법의차이로인해같은데이터형을사용하더라도통신후의데이터값은예상과다를수있다. 일반적으로서로다른플랫폼간에데이터값을동일하게인식하기위해서사용하는방법이데이터를문자열로변환하여통신하는것인데, 이러한방식을이용할경우추가로네트워크의부하가발생할수있다. Tmax는이러한통신상의문제를해결하기위해 FDL 방식을제공한다. FDL은필드버퍼라고하는저장구조를정의하고조작하는일련의 C 함수의집합이다. FDL 방식은식별자와식별자에대응하는필드버퍼에서의데이터값이한쌍으로존재하여서로다른종류의프로세스간에데이터를상호교환할수있도록구현된다. 따라서프로세스간에데이터교환은식별자 (identifier) 로하고, 실제값을처리할때에는그식별자에매핑되어있는필드버퍼의데이터값이호출된다. 용어정의 필드키 (fieldkey) 필드식별자 FDL 레코드나필드버퍼내에서독립적인데이터항목에대한태그이다. 필드버퍼 (fieldbuffer) 데이터와데이터를식별하는필드키를보관하는버퍼이다. 필드형 (fieldtype) 표준 C(ANSI C) 에서제공하는 short, integer, long, float, double, char 형등어느것이든가능하다. 또한 Tmax 에서는 string 과 carray 형을지원한다. 필드순번 필드를조작및처리하는데있어필드키버퍼내에서동일한필드키가여러번반복해서나타날경우 지정하는인덱스이다. 제 1 장소개 1
14 1.2. C 구조체와필드버퍼 레코드를표현하는방법은다양하다. 그중에서 C 언어에서제공되는데이터구조체를사용하여레코드 를표현하는방법과필드버퍼를사용하여레코드를표현하는방법을한다. C 구조체 다음은 C 언어로작성된프로그램에서학생의 ID, 이름, 주소, 나이및성별등의정보를포함하기위해서 구조체를사용하여필드를구성한예이다. struct student { long stid; char name[10]; char addr[40]; short age; char sex; ; stid는 long형의변수로선언되어있고, name과 addr은 carray형, age는 short 그리고 sex는 char형의변수로선언되어있다. 변수 x를지정하여구조체 student를가리키게한다면다음과같이표현될수있으며이를필드의주소로사용할수있다. x stid, x name, x addr, x age, x sex 구조체를다른프로세스에전달하려면해당구조체의필드중사용하지않는필드를포함하여모든필드의데이터를전달하고고정된길이의레코드로통신하여야한다. 또한구조체필드의이름이바뀌면해당구조체의필드를사용하는모든프로그램을재컴파일해야한다. 필드버퍼 C 구조체와다르게필드버퍼는레코드를필드로분할하고레코드의각필드간에연관성있는접근을제공하는데이터구조이다. 필드명은필드의데이터형과함께데이터가저장된필드키값을나타내는것으로 16자까지사용할수있다. 필드버퍼의주된장점은데이터의독립성이다. 해당필드를사용하는모든프로그램을재컴파일하지않고도필드의데이터형과길이를변경할수있을뿐만아니라각필드의길이를가변적으로사용할수있다. C 구조체에서는사용하지않는필드도함께전체구조체를전송해야하지만, 필드버퍼방식은실제사용하는필드의값만전송할수있다. 필드버퍼의각필드는데이터유형과유일한식별번호의조합으로구성되는데정수형의식별번호를필드키라고하며필드버퍼는필드키와데이터를한쌍으로저장한다. 2 Tmax FDL Reference Guide
15 1.3. FDL 테이블생성 필드테이블은 Tmax 에서제공하는 fdlc 유틸리티를이용하여일정한형식에맞춘일반텍스트파일을컴 파일하여만든다 명령어 다음은필드유형과유일한번호가정의된 <demo.f> 라는사용자정의파일의예로이파일의형식만 Tmax 에서사용할수있다. # name number type flags comments *base 100 INPUT 101 string - - OUTPUT 102 string - - SEQNO 201 string - - CORPNO 202 string - - COMPDATE 203 string - - TOTMON 204 long - - GUARAT 205 float - - GUAMON 206 float - - T_BITMAP 900 carray - - FILENAME 901 string - - NEWFILE 902 string - - *base 1000 data1 301 long - - data2 302 long - - data3 303 long - - sumdata 304 long - - data4 305 long - - 필드테이블의 'name', 'number', 'type' 은반드시정의해야한다. 필드값 name number 최대 48자이하로정의된필드이름으로 fbget_fldkey() 의로사용하여필드식별자를얻어오는기능을한다. type과조합되어필드식별자를만드는데사용되는번호이다. 제 1 장소개 3
16 필드값 number와 type을조합하여필드식별자를만드는데, type은유일할수없으므로반드시 number는모든필드테이블에서유일한번호이어야한다. 위의 demo.f 예제에서 *base 번호 는 base가쓰인이후의 number에대한 base가되는것으로실제로 INPUT의 number를 201이라고쓴것과같은역할을한다. 이 base 는또다른 base가나오기전까지유효하다. type 해당필드의필드형을설정한다. 사용할수있는필드형은 char, short, int, long, float, double, string, carray 로총 8 가지 이다. fdlc 필드키테이블을컴파일하는명령어이다. 필드키방식은클라이언트 / 서버간데이터통신에서구조체를전송하는방법처럼전체구조체의항목을전달하지않고필요한항목만전달한다. 항목전달을위해서는각각의항목을구별할수있는유일한키가있어야한다. fdlc는텍스트형태로정의된필드키테이블을컴파일하여필드키를생성하는명령어이다. 사용방법 $ fdlc ( -c ) {- a c d u [-f] [-h 헤더파일이름 ] { -i 필드키테이블파일이름 [-jc ji] [-o 결과물이름 ] [-u] [-p 패키지이름 ] [-x] [-V] 항목 [ -a ] [ -c ] [ -d ] [ -u ] [ -f ] 생성된이진형태의파일에, 텍스트로작성된필드키테이블을컴파일하여필요한부분을추가하는옵션이다. [-f] 옵션을사용하여대상파일을지정하며기본파일은 <tmax.fdl> 이다. 중복되는필드의경우에대해서는새로운값으로대체된다. 텍스트로작성된필드키테이블을컴파일하여이진형태의파일을만든다. 이미이진파일이존재하면새내용을대체한다. 이옵션은기본값이다. 생성된이진형태의파일에, 텍스트로작성된필드키테이블을컴파일하여필요한부분을삭제한다. [-f] 옵션을사용하여대상파일을지정하며기본파일은 <tmax.fdl> 이다. 생성된이진형태의파일에, 텍스트로작성된필드키테이블을컴파일하여필요한부분을정정하거나추가하는옵션이다. [-f] 옵션을사용하여대상파일을지정하며기본파일은 <tmax.fdl> 이다. 텍스트로작성된필드키테이블을컴파일하여필요한부분을추가, 수정삭제하는경우대상파일을지정하는옵션이다. 4 Tmax FDL Reference Guide
17 항목 [ -h 헤더파일이름 ] { -i 필드키테이블파일이름 [ -ji jc ] 헤더파일이름을다른이름으로변경하고자할때사용하는옵션이다. [-h] 옵션없이컴파일하면 fdl 헤더파일이름은 < 필드키테이블이름 _fdl.h> 이다. 클라이언트프로그램과서버프로그램에서사용될필드키테이블을정의한파일을지정한다. 필수옵션이며경로와함께지정할수있다. WebT에서사용되는것으로서생성될필드정의클래스의형태를지정한다. - ji : 인터페이스형태의필드정의클래스파일을생성한다. - jc : 클래스형태의필드키정의 java 파일을생성한다. [ -o 결과물 ] [ -p패키지이름 ] [ -x ] [-V] 컴파일결과물을다른이름으로변경하고자할때사용하는옵션이다. [-o] 옵션없이컴파일하면 fdl 파일의이름은 <tmax.fdl> 이다. WebT에서사용되는옵션으로서생성된필드정의클래스의패키지이름을주어진값으로설정한다. 반드시 [-a] 옵션과함께사용되어야하며이옵션이사용되는경우에는중복되는필드에대해서원본값을유지한다. 실행파일의버전을확인할수있다 예제 다음은 { -ji jc 옵션을설정해서생성한 Java 파일의예이다. <demo.f> #demo.f #name number type flags comments INPUT 101 string - - OUTPUT 102 string - - $> fdlc -c -i demo.f -ji -jc webtdemo 다음은생성된 <demo_fdl.java> 의내용이다. package webtdemo; public interface demo_fdl { public int INPUT = ( ); /* number: 101 type: string */ public int OUTPUT = ( ); /* number: 102 type: string */ 제 1 장소개 5
18 다음은현재디렉터리에있는 <demo.f> 필드키테이블파일을 fdlc 유틸리티로컴파일하는명령이다. 컴 파일후 <tmax.fdl> 과 <demo_fdl.h> 파일이생성된다. <demo_fdl.h> 는필드키가정의된헤더파일이다. $fdlc -c -i demo.f <demo.f> 를 fdlc 유틸리티를사용하여컴파일하면 <demo_fdl.h> 와 <tmax.fdl> 이라는파일이기본적으로 생성된다. 여기에서생성되는파일이름을변경하고싶다면다음과같이 -o 옵션을사용하여원하는파일 이름으로이진파일을생성할수있다. $fdlc -c -i demo.f -o filename.fdl 생성되는파일은클라이언트와서버가필드버퍼를사용하여통신하는경우참조 ( 프로그램과함께컴파일됨 ) 되어원하는데이터형의필드를사용할수있다. 필드버퍼를사용할때는반드시환경변수인 FDLFILE 에 <filename.fdl> 의위치를다음과같이정의한다. 여기에서 <filename.fdl> 이란, fdlc 유틸리티로생성된이진파일을의미한다. 기본값인 <tmax.fdl> 이나, -o 옵션을지정하여생성한이진파일을적는다. FDLFILE=/home/tmax/sample/fdl/filename.fdl 필드테이블을사용할때필드키는반드시도메인내에서유일해야한다. 참고 fdlc 유틸리티에대한자세한내용은 "Tmax Reference Guide" 를참고한다. 6 Tmax FDL Reference Guide
19 제 2 장 FDL 함수 본장에서는 FDL 에서제공하는함수에대한사용법과예제에대해한다. 다음은 FDL 함수의목록이다. 함수명 fballoc fbbufop fbbufop_proj fbcalcsize fbchg_tu fbchg_tut fbdelall fbdelall_tu fbdelete fbextread fbfldcount fbfprint fbfree fbftos fbget fbgetalloc_tu fbgetalloc_tut 필드버퍼의크기를계산하고메모리를할당하는함수이다. 필드버퍼내에서필드데이터의이동, 복사, 비교등을입력인 mode에따라처리하는함수이다. 특정필드버퍼의필드데이터를지정한필드버퍼에복사하는함수이다. 필드버퍼를메모리에할당받을때적정한메모리를할당받기위하여필드버퍼의크기를계산하는함수이다. 필드버퍼에서입력에서지정한필드키의필드순번의데이터를변경하는함수이다. 필드버퍼에서입력에서지정한필드키의필드순번의데이터를사용자가지정한타입에서필드키의타입으로변환하는함수이다. 필드버퍼에서특정필드키에저장되어있는전체데이터를삭제하는함수이다. 필드키배열에지정된모든필드키에저장되어있는모든필드데이터를삭제하는함수이다. 메모리에할당한필드버퍼에서지정한필드키의지정한필드순번에해당하는특정필드의데이터를삭제하는함수이다. 지정하는특정파일로부터필드키와그에해당하는값을읽어서메모리에할당한필드버퍼에저장하는함수이다. 필드버퍼에현재저장되어있는모든필드의수를반환하는함수이다. 필드버퍼에저장되어있는필드데이터를지정한파일스트림에출력하는함수이다. 할당된필드버퍼의메모리를해제하는함수이다. 필드버퍼에저장되어있는데이터를 matching되는구조체버퍼로전송하는함수이다. 필드버퍼에서지정한필드키에해당하는필드데이터를읽어오는함수이다. 지정한필드키의필드순번에해당하는필드데이터를읽어오는함수이다. 필드키의필드순번에해당하는필드데이터를지정한타입으로필요한길이만큼버퍼를새로할당받아저장하여반환하는함수이다. 제 2 장 FDL 함수 7
20 함수명 fbget_fbsize fbget_fldkey fbget_fldname fbget_fldno fbget_fldtype fbgetlast_tu fbget_strfldtype fbget_tu fbget_tut fbget_unused fbget_used fbgetf fbgetlen fbgetnth fbgetntht fbgetval fbgetvali fbgetval_last_tu fbgetvall_tu 할당된필드버퍼의크기를반환하는함수이다. 필드테이블 (FDLFILE에설정된 FDL 파일 ) 과관련하여지정한필드명과 matching 되는식별자를반환하는함수이다. 필드테이블 (FDLFILE에설정된 FDL 파일 ) 과관련하여지정한필드키와 matching 되는필드이름을반환하는함수이다. 필드테이블을생성하기위해필요한데이터중지정한필드키와 matching되는필드번호를반환하는함수이다. 지정한필드키의필드형을정수로반환하는함수이다. 필드버퍼에서지정한필드키에저장되어있는필드데이터중마지막순번의데이터를반환하는함수이다. 지정한필드키에저장될필드데이터의타입을문자열로반환하는함수이다. 필드버퍼에서지정한필드키의지정한필드순번에해당하는필드의데이터를읽어오는함수이다. 지정한필드키의필드순번에해당하는필드데이터를지정한타입으로변환하여반환하는함수이다. 필드버퍼중아직사용되지않은필드버퍼의크기를계산하여 Byte 단위로반환하는함수이다. 필드버퍼중현재사용중인필드버퍼의크기를계산하여 Byte 단위로반환하는함수이다. 필드버퍼에저장되어있는필드데이터를순차적으로읽어오는함수이다. 필드버퍼에지정한필드키의필드순번에해당하는필드데이터의길이를반환하는함수이다. 필드버퍼에서지정한필드키에저장되어있는필드데이터중지정한데이터가저장되어있는필드의개수을반환하는함수이다. 지정한필드키에저장되어있는필드데이터중지정한데이터가저장되어있는필드순번을반환하는함수이다. 필드버퍼에서지정한필드키에저장되어있는필드데이터중지정한필드순번에해당하는필드데이터를반환하는함수이다. 필드버퍼에서지정한필드키에저장되어있는데이터중지정한필드순번에해당하는필드데이터를정수로변환하여반환하는함수이다. 필드버퍼에서지정한필드키에저장되어있는필드데이터중마지막순번의데이터를반환하는함수이다. 필드버퍼에서지정한필드키의필드순번의데이터를 long형으로변환하여반환하는함수이다. 8 Tmax FDL Reference Guide
21 함수명 fbgetvals fbgetvals_tu fbgetvalt fbinit fbinsert fbisfbuf fbispres fbkeyoccur fbmake_fldkey fbnext_tu fbprint fbput fbputt fbrealloc fbread fbsnull fbstelinit fbstinit fbstof fbstrerror fbtypecvt 필드버퍼에서지정한필드키에저장되어있는필드데이터중지정한필드순번의필드데이터를그필드형에상관없이모두문자열로변환하여반환하는함수이다. 필드버퍼에서필드키에저장되어있는필드데이터를반환하는함수이다. 필드버퍼에서지정한필드키에저장되어있는필드데이터중지정한필드순번에해당하는필드데이터를지정한타입 (totype) 으로변환하여반환하는함수이다. 메모리에할당된필드버퍼를초기화하는함수이다. 메모리에할당된필드버퍼에지정한필드키의필드순번에해당되는데이터를반환하는함수이다. 지정한필드버퍼가메모리에할당받은유효한버퍼인지확인하는함수이다. 필드버퍼에지정한필드키의필드순번에필드데이터가존재하는지확인하는함수이다. 필드버퍼에서지정한필드키에저장되어있는모든필드의개수를반환하는함수이다. 새로운필드키를동적으로생성하는함수이다. 필드버퍼에서다음필드키와필드데이터를반환하는함수이다. 현재필드버퍼의내용을정해진형식에따라표준출력하는함수이다. 메모리에할당된필드버퍼에새로운필드를추가하는함수이다. 메모리에할당된필드버퍼에새로운필드를추가하는함수이다. fbput 함수와달리사용자가데이터형을변환할수있다. 메모리에할당된필드버퍼의크기가부족할경우메모리의크기를늘려서다시할당하는함수이다. 지정한파일스트림으로부터데이터를읽어서메모리에할당된필드버퍼에필드데이터로로드하는함수이다. 필드버퍼에서지정한필드키의필드순번과 mapping되는구조체의멤버변수가 NULL인지확인하는함수이다. 입력에서지정한구조체의멤버변수를개별적으로 NULL로초기화하는함수이다. 입력에서지정한구조체변수를초기화하는함수이다. C 구조체버퍼 (stname) 에저장되어있는데이터를 matching되는필드버퍼로전송하는함수이다. 필드버퍼와관련된 API 함수를수행할때발생하는에러번호에해당하는내용을문자열로반환하는함수이다. 지정한데이터형의필드데이터를지정한형으로변환하여반환하는함수이다. 제 2 장 FDL 함수 9
22 함수명 fbupdate fbwrite getfberrno getfberror 필드버퍼에입력에지정한필드키의필드순번위치로지정한데이터를이미저장되어있는필드데이터와변경하는함수이다. 메모리에할당된필드버퍼의내용을 iop에지정한파일스트림에저장하는함수이다. 필드버퍼와관련된 API 함수를수행하는도중에러가발생하였을경우에러번호를반환하는함수이다. 이함수에서반환하는에러번호에대한에러메시지를알고싶을경우이함수를입력로하여 fbstrerror() 를이용하면된다. getfberrno() 는입력가없다. 필드버퍼와관련된 API 함수를수행하는도중에러가발생하였을경우에러번호를반환하는함수이다 fballoc 필드버퍼의크기를계산하고메모리를할당하는함수이다. f~(), t~(), t~() 를조합한형태이다. 함수에서사용할필드의개수와데이터의길이를로전달하면필드버퍼의크기를계산하고계산된크기만큼의필드버퍼를메모리에할당한다. ( 할당되는메모리의크기 =count*sizeof(int) + datalen + 필드키헤더크기 ) 로전달된값으로계산한결과가 1024Byte보다작은경우에는기본값으로 1024Byte가할당된다. 이함수를사용하면사용할크기만큼만메모리를할당받으므로메모리의낭비를막을수있다. 이함수로할당받은버퍼를사용한후에는반드시 fbfree() 를사용하여해제해야한다. 프로토타입 #include <fbuf.h> #include <atmi.h> FBUF *fballoc(int count, FLDLEN datalen) count datalen 데이터를저장할필드의개수를지정한다. 필드버퍼에저장될데이터의전체크기를 Byte 단위로지정한다. 반환값 반환값 메모리포인터 NULL 함수호출에성공한경우이다. 함수호출에실패한경우이다. 10 Tmax FDL Reference Guide
23 반환값 (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값이설정된다. 에러코드 FBEMALLOC 시스템에러로, 필드버퍼를메모리에할당하는것에실패한경우이다. 예제 #include <fbuf.h> #include <atmi.h>... FBUF *fbuf; if ((fbuf = fballoc(100, 1000)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... /* result allocated size : 1408 bytes */ 필드버퍼를메모리에할당하는다른방법으로 tpalloc() 을사용한다. 다음과같이 tpalloc() 의세번째에 0 을입력하면기본값인 1024Byte 가할당된다. 에 1024Byte 보다작은수를입력해도기본값인 1024Byte 가할당된다. FBUF *fbuf; if ((fbuf = (FBUF *)tpalloc( FIELD, NULL, 0)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... /* result allocated size : 1024 bytes */ 관련함수 fbisfbuf(), fbcalcsize(), tpalloc(), fbinit() 2.2. fbbufop 필드버퍼내에서필드데이터의이동, 복사, 비교등을입력인 mode에따라처리하는함수이다. fbbufop() 의중 dest와 src 필드버퍼는같은버퍼를사용할수없고반드시다른메모리에할당된버퍼를사용해야한다. 프로토타입 제 2 장 FDL 함수 11
24 #include <fbuf.h> #include <atmi.h> int fbbufop(fbuf *dest, FBUF *src, int mode) dest src mode fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. src에있는내용을 dest에 mode에따라저장한다. fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 변경될값을가진버퍼이다. Process mode 중하나를설정한다. 다음은 Process mode 에대한이다. Process mode FBMOVE FBCOPY FBCOMP src 필드버퍼의내용을 dest 필드버퍼로복사한다. 이모드에서는 dest 에 string 또는 carray 버퍼를사용할수있다. 단 string 또는 carray 버퍼를사용하려면 dest 를사용할때필드버퍼 (FBUF *) 로 type casting을한다. src 필드버퍼의내용을 dest 필드버퍼로복사한다. 이모드에서는반드시 dest, src 가모두필드버퍼여야한다. - 0 또는 1 : dest와 src 필드버퍼의내용을비교하여 matching되는경우이다. 0 을반환하는경우는 2개의필드버퍼의 value, 구조, 개수, 순서등이완전히일치한다. 1을반환하는경우는구조, 개수, 순서등이모두일치하지만 value는일치하지않는다 : dest 와 src 필드버퍼의내용을비교하여 matching 되지않는경우이다. FBCONCAT FBJOIN FBOJOIN FBUPDATE src 필드버퍼의내용을 dest 필드버퍼에덧붙이는경우로 dest 필드버퍼에기존데이터와 src 필드버퍼의내용이저장된다. 필드키와필드순번이 matching되는필드에한해해당데이터를 src 필드버퍼에서 dest 필드버퍼에복사한다. 단 dest 필드버퍼에기존에존재하던데이터는모두사라지므로주의한다. FBJOIN 모드와유사하게동작하지만함수를수행하고난후필드키와필드순번이 matching되지않는필드의데이터는수행하기전의상태로보존된다. FBOJOIN 모드와유사하게동작한다. 필드키와필드순번이 matching되는필드의데이터를 src 필드버퍼에서 dest 필드버퍼에복사하는것은 FBOJOIN 모드와유사하다. 다만 FBUPDATE 모드는필드키와필드순번이 matching되지않는 src 필드버퍼에있는필드의데이터까지도 dest 필드버퍼에복사된다. 12 Tmax FDL Reference Guide
25 반환값 반환값 1-1 함수호출에성공한경우이다. 함수호출에실패한경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값중하나가설정된다. 에러코드 FBENOSPACE FBEMALLOC FBEINVAL 필드버퍼에데이터를저장하거나복사할공간이부족할경우 fberror는 FBENOSPACE로설정된다. 시스템에러로, 필드버퍼를메모리에할당하는것을실패할경우 fberror는 FBEMALLOC으로설정된다. 입력로지정된값중유효하지않은가있을경우를의미한다. 예제 #include "demo_fdl.h" main() { FBUF *destbuf, *srcbuf; destbuf=fballoc(5,5); fbput(destbuf, INPUT, "5555", 0); fbput(destbuf, INPUT, "7777", 0); fbput(destbuf, OUTPUT, "3333", 0); fbput(destbuf, SEQNO, "8888", 0); srcbuf=fballoc(5,5); fbput(srcbuf, INPUT, "1111", 0); fbput(srcbuf, OUTPUT, "2222", 0); fbput(srcbuf, CORPNO, "3333", 0); /* Mode 를 select 할수있게한다. */ printf("input : "); 제 2 장 FDL 함수 13
26 scanf("%d", &a); switch(a) { /*FBMOVE mode */ case 1: iret=fbbufop(destbuf, srcbuf, FBMOVE); fbprint(destbuf); break; /* destbuf : 1111, 2222, 3333 */ /*FBCOMP mode */ case 2: iret=fbbufop(destbuf, srcbuf, FBCOMP); printf("ret = %d\n", iret); if(iret < 0) { printf("do not match!!!\n"); fbfree(destbuf); fbfree(srcbuf); exit(0); printf("match!!!\n"); break; /* Do not match!!! */ /*FBCOPY mode */ case 3: iret=fbbufop(destbuf, srcbuf, FBCOPY); fbprint(destbuf); break; /* destbuf : 1111, 2222, 3333 */ /*FBCONCAT mode */ case 4: iret=fbbufop(destbuf, srcbuf, FBCONCAT); fbprint(destbuf); break; /* destbuf : 5555, 7777, 3333, 8888, 1111, 2222, 3333 */ /*FBJOIN mode */ case 5: iret=fbbufop(destbuf, srcbuf, FBJOIN); 14 Tmax FDL Reference Guide
27 fbprint(destbuf); break; /* destbuf : 1111, 2222 */ /*FBOJOIN mode */ case 6: iret=fbbufop(destbuf, srcbuf, FBOJOIN); fbprint(destbuf); break; /* destbuf : 1111, 7777, 2222, 8888 */ /*FBUPDATE mode */ case 7: iret=fbbufop(destbuf, srcbuf, FBUPDATE); fbprint(destbuf); break; /* destbuf : 1111, 7777, 2222, 8888, 3333 */ fbfree(destbuf); fbfree(srcbuf); 관련함수 fbbufop_proj() 2.3. fbbufop_proj 특정필드버퍼의필드데이터를지정한필드버퍼에복사하는함수이다. src 필드버퍼의지정한필드의필드데이터를 dest 필드버퍼에복사한다. 함수의 dest와 src 필드버퍼는같은버퍼를사용할수없고반드시따로메모리에할당된다른버퍼를사용해야한다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbbufop_proj(fbuf *dest, FBUF *src, FLDKEY *fldkey) 제 2 장 FDL 함수 15
28 dest src fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. src에있는내용을 dest에 mode에따라저장한다. fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 변경될값을가진버퍼이다. src 를 NULL 로설정하면 dest 필드버퍼자체에서지정된필드의데이터가복사 된다. fldkey 복사하려는필드를배열형태로지정할수있다. 배열의마지막에는반드시 0 을 지정해야한다. fldkey 포인터를배열로선언한후그배열에복사하려는필드를 2 개이상지정 하면 src 필드버퍼에서 dest 필드버퍼로 fldkey 에지정한필드의데이터만복사 된다. 반환값 반환값 1-1 함수호출에성공한경우이다. 함수호출에실패한경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값중하나가설정된다. 에러코드 FBEMALLOC FBEINVAL 시스템에러로필드버퍼를메모리에할당하지못했을경우 fberror는 FBEMAL LOC으로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. 예를들어 fbuf가 NULL일경우해당에러가발생한다. 예제 #include demo_fdl.h... int iret, i; FBUF *destbuf, *srcbuf; FLDKEY fkey[4]; 16 Tmax FDL Reference Guide
29 ... fbput(destbuf, INPUT, "aaa", 0); fbput(destbuf, OUTPUT, "bbb", 0); fbput(destbuf, SEQNO, "ccc", 0); fbput(srcbuf, TEST1, "AAA", 0); fbput(srcbuf, TEST2, "BBB", 0); fbput(srcbuf, TEST3, "CCC", 0); fkey[0]=fbget_fldkey("input"); fkey[1]=fbget_fldkey("seqno"); fkey[2]=0; /* The last entry in the array must be 0 */ ret=fbbufop_proj(destbuf, NULL, fkey); /* destbuf : aaa, ccc */ fkey[0]=fbget_fldkey("test3"); fkey[1]=fbget_fldkey("test1"); fkey[2]=fbget_fldkey("test2"); fkey[3]=0; /* The last entry in the array must be 0 */ ret=fbbufop_proj(destbuf, srcbuf, fkey); /* destbuf : AAA, BBB, CCC */ /* fkey array is sorted if the entries are not in numeric order */ 관련함수 fbbufop() 2.4. fbcalcsize fballoc() 또는 tpalloc() 으로필드버퍼를메모리에할당받을때필드버퍼의크기를계산하는함수이다. 사용할필드의개수와총데이터의길이 (Byte 단위 ) 를로전달하면필드버퍼의크기를계산한다. 프로토타입 #include <fbuf.h> #include <atmi.h> long fbcalcsize(int count, FLDLEN datalen) 제 2 장 FDL 함수 17
30 count datalen 데이터를저장할필드의개수를의미한다. 필드버퍼의전체데이터크기를 Byte 단위로지정한다. 반환값 주어진입력 (count, datalen) 에근거하여필드버퍼의크기를 Byte 단위로반환한다. 예제 #include demo_fdl.h FBUF *fbuf; long size; size = fbcalcsize(100, 1000); printf( size : [%ld]\n, size); /* output : size : [1408] */ if ((fbuf = (FBUF *)tpalloc( FIELD, NULL, size)) == NULL) { printf( tpalloc failed, errno = %d\n, tperrno);... /* fbuf is set in 1024 bytes by default if size is less than 1024*/... 관련함수 fballoc(), tpalloc() 2.5. fbchg_tu alloc() 또는 tpalloc() 으로메모리에할당된필드버퍼에서입력에서지정한필드키의필드순번의데이터를변경하는함수이다. 입력에서지정한필드순번 (nth) 에기존의데이터가없을경우에는필드순번 (nth) 에주어진데이터가자동으로필드로추가된다. 그러므로이함수를이용해서필드데이터를변경할때는관계가없지만, 필드순번을추가할경우에는처리속도가저하되므로주의한다. 프로토타입 #include <fbuf.h> #include <atmi.h> 18 Tmax FDL Reference Guide
31 int fbchg_tu(fbuf *fbuf, FLDKEY fldkey, int nth, char *value, FLDLEN fldlen) fbuf fldkey nth value fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에변경할필드의필드키이다. fldkey에서지정한필드키의데이터중변경할필드순번을의미한다. (char *) 형이므로변경하려는필드키가정수형이나실수형인경우에는반드시 (char *) 형으로 type casting을한다. value 에 NULL 이설정된경우해당필드키를지운다. fldlen 일반적으로는필드의길이를지정하지않아도된다. 필드키의타입이 FB_CARRAY 인경우에는반드시필드데이터의길이를 Byte 단위로지정한다. 반환값 반환값 1-1 함수호출에성공한경우이다. 함수호출에실패한경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값중하나가설정된다. 에러코드 FBENOENT FBENOSPACE FBEINVAL 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 필드버퍼에데이터를저장하거나복사할공간이부족할경우 fberror는 FBENOSPACE로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. 예제 #include demo_fdl.h... 제 2 장 FDL 함수 19
32 long rcvlen, ret; char buffer[100]; FLDLEN fldlen; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, tperrno);... fbput(fbuf, INPUT, aaaa, 0); /* 영번째순번에는 aaaa가있음. */ ret = fbchg_tu(fbuf, INPUT, 1, bbbb, 4); /* 첫번째순번에 bbbb를추가함. */ if (ret < 0) { error processing... ret = fbget_tu(fbuf, INPUT, 1, buffer, &fldlen); /* 첫번째순번에있는데이터를 buffer에넣음. */ if (ret < 0) { error processing... printf( Field Data: [%s]\n, buffer); /* output : Field Data: [bbbb] */ fbprint(fbuf); /* output : aaaa, bbbb */... 관련함수 fbbufop_proj() 2.6. fbchg_tut fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼에서입력에서지정한필드키의필드순번의데이터를사용자가지정한타입에서필드키의타입으로변환한후변경하는함수이다. 이함수는 fbchg_tu() 와유사하지만데이터형이변경할필드키의필드형과다른경우, 필드데이터를변경하기전에먼저저장하려는데이터형을필드키의타입으로변환한후필드데이터를변경하여저장할수있다는점이다르다. 입력에서지정한필드순번에기존에데이터가없을경우에는필드순번이주어진데이터로자동적으로필드가추가된다. 그러므로이함수를이용해서필드순번을추가할경우에는처리속도가저하되므로주의한다. 프로토타입 20 Tmax FDL Reference Guide
33 #include <fbuf.h> #include <atmi.h> int fbchg_tut(fbuf *fbuf, FLDKEY fldkey, int nth, char *value, FLDLEN fldlen, int type) fbuf fldkey nth value fldlen type fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에변경할필드의필드키이다. fldkey에서지정한필드키의데이터중변경하려는필드순번을의미한다. 가 char * 형이므로변경하려는필드키가정수형이나실수형인경우에는반드시 char * 형으로 type casting을한다. 일반적으로는필드의길이를지정하지않아도된다. 그러나필드키의타입이 FB_CARRAY인경우에는반드시필드데이터의길이를 Byte 단위로지정한다. 사용자가지정한데이터형을의미한다. type에지정할수있는값은다음과같다. - FB_CARRAY - FB_SHORT - FB_DOUBLE - FB_LONG - FB_STRING - FB_CHAR - FB_FLOAT - FB_INT 반환값 반환값 1-1 함수호출에성공한경우이다. 함수호출에실패한경우이다. (fberror 에에러번호가설정된다.) 제 2 장 FDL 함수 21
34 오류 fberrno 에는다음값중하나가설정된다. 에러코드 FBENOENT FBENOSPACE FBEINVAL 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 필드버퍼에데이터를저장하거나복사할공간이부족할경우 fberror는 FBENOSPACE로설정된다. 입력로지정된값중유효하지않은가있을경우를의미한다. (FB_CARRAY 타입인경우데이터길이를지정하지않으면이코드가설정된 다.) FBETYPE FBEBADFLD Tmax 에서지원하지않는타입이사용되었다. 잘못된필드를사용하였다. 예제 #include demo_fdl.h long ret, lval=100000; FBUF *fbuf; fbputt(fbuf, INPUT, "aaaa", 0, FB_STRING); fbchg_tut(fbuf, INPUT, 0, (char *)&lval, 0, FB_LONG); printf("1st occurrence of INPUT field is changed as follows : \n"); fbprint(fbuf);... /* fkey = , fname = INPUT, type = string, value = */ 관련함수 fbput(), fbchg_tu(), fbget_tu(), fbgetval(), fbgetval_last_tu(), fbgetvals_tu(), fbgetvall_tu() 2.7. fbdelall 필드버퍼에서특정필드키에저장되어있는전체데이터를삭제하는함수이다. 프로토타입 #include <fbuf.h> #include <atmi.h> 22 Tmax FDL Reference Guide
35 int fbdelall(fbuf *fbuf, FLDKEY fldkey) fbuf fldkey fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서삭제할필드키이다. fldkey 에서지정할필드키는반드시이함수를호출하기이전에지정한필드버 퍼에필드순번의데이터가 1 개이상저장되어있어야한다. 그렇지않으면 1 을 반환하며 fberror 는 FBENOENT 로설정된다. 반환값 반환값 삭제한필드의개수 -1 함수호출에성공한경우이다. 함수수행중필드버퍼에지정한필드키가존재하지않아에러가발생한경우이다. (fberror 에상황에해당하는값이설정된다.) 오류 fberrno 에는다음값중하나가설정된다. 에러코드 FBENOENT FBEINVAL 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. 예제 #include demo_fdl.h int ret; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); 제 2 장 FDL 함수 23
36 fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, INPUT, cccc, 0); ret = fbdelall(fbuf, INPUT); printf( Delete Field Number: [%d]\n, ret); /* output: Delete Field Number: [3] */... 관련함수 fbput(), fbget(), fbdelete(), fbdelall_tu() 2.8. fbdelall_tu 필드키배열에지정된모든필드키에저장되어있는모든필드데이터를삭제하는함수이다. 중 fldkey에설정된데이터를삭제한다. 여러개의필드키를동시에삭제할경우에는 fbdelall_tu() 를한번호출하는것이 fbdelall() 을여러번호출하는것보다효율적이다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbdelall_tu(fbuf *fbuf, FLDKEY *fldkey) fbuf fldkey fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서삭제할필드키를 2 개이상지정한필드키배열이다. fieldkey 에서지정할필드키포인터는배열로선언하여삭제하려는필드키를명 시한다. 필드키배열에삭제할필드키를지정한후마지막인덱스에는반드시 0 을지정한다. 반환값 반환값 삭제한필드의개수 함수호출에성공한경우이다. 오류 fberrno 에는다음값중하나가설정된다. 24 Tmax FDL Reference Guide
37 에러코드 FBENOENT FBEINVAL fldkey 배열에서마지막에지정된필드키에해당하는데이터가없는경우 fberror 는 FBENOENT로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. 예제 #include demo_fdl.h FLDKEY fkey[3]; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, OUTPUT, cccc, 0); fkey[0] = INPUT; fkey[1] = OUTPUT; fkey[2] = 0; /* The last entry in the array must be 0 */ ret = fbdelall_tu(fbuf, fkey); printf( The Number of deleted fields: [%d]\n, ret); /* output: Number of deleted fields: [3] */... 관련함수 fbput(), fbget(), fbdelete(), fbdelall() 2.9. fbdelete fballoc() 또는 tpalloc() 으로메모리에할당한필드버퍼에서지정한필드키의지정한필드순번에해당하는특정필드의데이터를삭제하는함수이다. fbchg_tu() 는지정한필드순번에해당하는필드가존재하지않을경우자동으로필드를추가하지만 fb delete() 는지정한필드순번에해당하는필드가필드버퍼에존재하지않을경우에러를발생시키며 fberror 는 FBENOENT로설정된다. 그러므로이함수에서는반드시함수를수행하기전에필드버퍼에존재하는필드를로지정해야한다. 프로토타입 제 2 장 FDL 함수 25
38 #include <fbuf.h> #include <atmi.h> int fbdelete(fbuf *fbuf, FLDKEY fldkey, int nth) fbuf fldkey nth fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서삭제하려는필드키를의미한다. 삭제하려는특정필드순번을의미한다. 반환값 반환값 1-1 함수호출에성공한경우이다. 로지정한필드키의순번에해당하는필드가필드버퍼에존재하지않을경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값중하나가설정된다. 에러코드 FBENOENT 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서 필드버퍼에서사용할수없는경우 fberror 는 FBENOENT 로설정된다. 지정한필드순번에해당되는데이터가필드버퍼에존재하지않는경우에도 fberror 가 FBENOENT 로설정된다. FBEINVAL 입력로지정된값중유효하지않은가있음을의미한다. 예제 #include demo_fdl.h char buffer[100]; int ret; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { 26 Tmax FDL Reference Guide
39 printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); /* fbuf의 0번째데이터는 aaaa 이다. */ fbput(fbuf, INPUT, bbbb, 0); /* fbuf의 1번째데이터는 bbbb 이다. */ fbput(fbuf, INPUT, cccc, 0); /* fbuf의 2번째데이터는 cccc 이다. */ fbdelete(fbuf, INPUT, 1); /* fbuf의 1번째데이터인 bbbb 를삭제한다. */ ret=fbdelete(fbuf, INPUT, 3); if(ret<0){ printf("fbdelete error : %s\n", fbstrerror(fberror)); /* fbuf의 3번째순번에는데이터가없기때문에 fbdelete error : FBENOENT (not found) 가출력된다. */ fbget(fbuf, INPUT, buffer, 0); printf( INPUT: [%s]\n, buffer); /* output: INPUT: [aaaa] */ fbget(fbuf, INPUT, buffer, 0); printf( INPUT: [%s]\n, buffer); /* output: INPUT: [cccc] */... 관련함수 fbput(), fbget(), fbdelall(), fbdelall_tu() fbextread iop에서지정하는특정파일로부터필드키와그에해당하는값을읽어서 fballoc() 또는 tpalloc() 으로메모리에할당한필드버퍼에저장하는함수이다. 내부적으로 flag도사용하지않은경우 fbput() 을호출하고, flag가 + 인경우 fbchg_tu() 를, -인경우 fbdelete() 를, = 인경우 fbget_tu() 를호출한후 fbchg_tu() 를호출한다. 따라서이러한함수에서나타나는에러와동일한에러가 fbextread() 에서발생할수있다. 프로토타입 #include <stdio.h> #include <usrinc/fbuf.h> int fbextread(fbuf *fbuf, FILE *iop) fbuf fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 제 2 장 FDL 함수 27
40 iop 읽어올필드키와그에해당하는값이저장되어있는파일의포인터이다. flag는 demo.f 파일의 flags에 -, +, = 로설정된내용이다. 필드키와값이저장되어있는파일의형식은다음과같다. flag가 + 이거나 flag를사용하지않을경우 [flag] field_name or field_id (tab) field_value flag 가 = 일경우 [flag] field_name1 or field_id1 (tab) field_name2 or field_id2 flag 가 일경우 [flag] field_name or field_id flag 에는 4 가지가있는데각 flag 의의미는다음과같다. flag + - = # 없음 필드버퍼에서필드키에해당하는값을 0번째순번에저장한다필드버퍼에서해당되는필드키의 0번째순번에해당하는데이터를삭제한다. 필드버퍼에서 1번째필드이름 (field_name1) 에해당하는데이터중 0번째순번의필드값을 2번째필드이름 (field_name2) 에해당하는데이터중 0번째순번의필드값으로교체한다. 주석 (comment) 으로처리한다. 필드버퍼에새로운필드를추가한다. 반환값 반환값 1-1 함수호출에성공한경우이다. 함수호출에실패한경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값이설정된다. 28 Tmax FDL Reference Guide
41 에러코드 FBEINVAL 입력로지정된값중유효하지않은가있음을의미한다. 예를 들면 fbuf 가 NULL 로지정된경우해당에러가발생한다. 예제 #include <stdio.h> #include <usrinc/atmi.h> #include <usrinc/fbuf.h> #include "demo_fdl.h" int main() { long len; int ret; FILE *fp; FBUF *fbuf; FLDLEN fldlen; char buffer[100]; fbuf = (FBUF *)tpalloc("field", NULL, 0); if (fbuf == NULL) { printf("fbuf tpalloc fail[%d]\n", tperrnㅇo); ret = fbput(fbuf, INPUT, "user_input", 10); if (ret < 0) { printf("fbput fail[%d]\n", fberror); return -1; ret = fbput(fbuf, OUTPUT, "user_output", 10); if (ret < 0) { printf("fbput fail[%d]\n", fberror); return -1; ret = fbput(fbuf, STATLIN, "user_statlin", 10); if (ret < 0) { printf("fbput fail[%d]\n", fberror); return -1; fp = fopen("file", "r"); fbprint(fbuf); ret = fbextread(fbuf, fp); if (ret < 0) printf("fextread fail[%s]\n", fberror); 제 2 장 FDL 함수 29
42 printf("\n\n<after Fextread> \n"); fbprint(fbuf); tpfree((char *)fbuf); + flag 를이용하여 STSTLIN 필드키의 0 번째값을 statlin0_ 으로변경한다. 파일 1 +STATLIN statlin0_ 결과 1 user_input, user_output, statlin0_, user_statlin fbuf 버퍼에필드값을추가한다. 파일 2 OUTPUT INPUT INPUT OUTPUT0_ INPUT0_ INPUT1_ 결과 2 user_input, user_output, user_statlin, OUTPUT0_, INPUT0_, INPUT1_ = flag 를이용하여 INPUT 값을 OUTPUT 에저장한다. 파일 3 =OUTPUT INPUT 결과 3 user_input, user_input, user_statlin - flag 를이용하여 INPUT 필드키를삭제한다. 파일 4 INPUT 결과 4 30 Tmax FDL Reference Guide
43 user_output, user_statlin 관련함수 fbput(), fbchg_tu(), fbdelete(), fbget_tu() fbfldcount fballoc() 또는 tpalloc() 으로메모리에할당한필드버퍼에현재저장되어있는모든필드의수를반환하는함수이다. fbfldcount() 는필드버퍼내에필드데이터가몇개저장되어있는지계산한다. 이미구현되어있는여러 API 함수를이용하여필드버퍼에몇개의필드가실질적으로저장되어있는지도확인할수있다. 하나의필드키에순번을달리하여여러데이터가저장되어있더라도 fbfldcount() 는별개의필드로인식한다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbfldcount(fbuf *fbuf) fbuf fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 반환값 반환값 필드의수 함수호출에성공한경우이다. ( 필드버퍼에현재저장되어있는필드의수를반환 ) 0 함수호출에실패한경우, 필드버퍼에저장되어있는필드가없는경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값이설정된다. 제 2 장 FDL 함수 31
44 에러코드 FBEINVAL 입력로지정된값중유효하지않은가있음을의미한다. 예를 들면 fbuf 가 NULL 로지정된경우해당에러가발생한다. 예제 #include demo_fdl.h int cnt; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, OUTPUT, cccc, 0); cnt = fbfldcount(fbuf); printf( Field Count: [%d]\n, cnt); /* output: Field Count: [3] */ 관련함수 fbgetnth(), fbkeyoccur() fbfprint 필드버퍼에저장되어있는필드데이터를지정한파일스트림에출력하는함수이다. 지정한파일은텍스트파일이고, 출력형식은 fbprint() 의출력형식과같다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbfprint(fbuf *fbuf, FILE *iop) fbuf fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 32 Tmax FDL Reference Guide
45 iop 출력데이터를저장할파일스트림을의미한다. 반환값 반환값 1-1 함수호출에성공한경우이다. 함수호출에실패한경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값중하나가설정된다. 에러코드 FBEBADFB FBEINVAL 필드버퍼가유효하지않다. 현재의필드버퍼이외의다른정상적으로메모리에할당된버퍼를사용해야한다. 입력로지정된값중유효하지않은가있음을의미한다. 예제 #include demo_fdl.h FILE *iop; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... iop = fopen( sample.text, w ); fbput(fbuf, INPUT, 5555, 0); fbput(fbuf, INPUT, 7777, 0); fbfprint(fbuf, iop); fclose(iop); 관련함수 fbprint() 제 2 장 FDL 함수 33
46 2.13. fbfree fballoc() 또는 tpalloc() 으로할당된필드버퍼의메모리를해제하는함수이다. 이함수는이전에할당받았던버퍼를메모리로부터해제하는함수이므로수행한후에다시해당버퍼를사용할수없다. 버퍼의사용이완전히끝난이후에 fbfree() 를호출해야한다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbfree(fbuf *fbuf) fbuf fballoc() 또는 tpalloc() 으로할당된필드버퍼이다. 반환값 반환값 1-1 버퍼를정상적으로해제하는경우이다. 필드버퍼의메모리를해제하지못하는경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에는다음값이설정된다. 에러코드 FBEINVAL 입력로지정된값중유효하지않은가있음을의미한다. 예를 들면 fbuf 가 NULL 로지정된경우해당에러가발생한다. 예제 #include demo_fdl.h int ret; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror); Tmax FDL Reference Guide
47 fbput(fbuf, INPUT, aaaa, 0); ret = fbfree(fbuf); printf( fbfree, ret = %d\n, ret); /* output : fbfree, ret = 1 */ fbput(fbuf, INPUT, bbbb, 0); fbprint(fbuf); /* an error occurs since memory was not allocated. */ 관련함수 fbcalcsize(), tpalloc(), fballoc(), fbinit() fbftos 필드버퍼에저장되어있는데이터를 matching되는구조체버퍼로전송하는함수이다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbftos(fbuf *fbuf, char *cstruct, char *stname) fbuf cstruct stname fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 사용할구조체타입의변수를 (char *) 형으로 type casting하여사용한다. VIEW에서정의한구조체의이름을문자열로지정한다. 반환값 반환값 1-1 필드버퍼에저장되어있는데이터를성공적으로 C 구조체에전송했을경우이다. 필드버퍼에저장되어있는데이터를성공적으로 C 구조체에전송하지못한경우이다. (fberror 에에러번호가설정된다.) 오류 제 2 장 FDL 함수 35
48 fberrno 에다음값중하나가설정된다. 에러코드 FBENOENT FBENOSPACE FBEINVAL FBEBADFLD FBEBADSTRUCT 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 필드버퍼에데이터를저장하거나복사할공간이부족할경우 fberror는 FBENOSPACE로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. 유효하지않은필드키가사용된경우이다. 일반적으로필드키가 fdlc 유틸리티를사용하여컴파일되지않은필드키가사용되었을경우 fberror는 FBEBADFLD로설정된다. 유효하지않은구조체가사용된경우이다. 일반적으로 Tmax에서인식하지못하는형태의구조체가사용되었거나구조체정의파일이잘못컴파일되었을경우에발생하는에러이다. 예제 #include demo_fdl.h #include demo_sdl.h int ret, fdllen, val = 1000; struct demo temp; FBUF *fbuf; Char *cstruct; if(tpstart((tpstart_t *)NULL) == -1) { printf( tpstart failed\n );... if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... cstruct = (char *)&temp; if(fbstinit((char *)&temp, demo ) < 1) { printf( fbstinit failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); fbput(fbuf, INTDATA, (char *)&val, 0); 36 Tmax FDL Reference Guide
49 if(fbftos(fbuf, cstruct, demo ) < 0) { 관련함수 fbstof(), fbstinit(), fbstelinit() 참고 fbftos() 는 fballoc() 또는 tpalloc() 을통하여메모리에할당된필드버퍼에저장되어있는필드데이터를 matching되는 C 구조체버퍼 (stname) 로전송하는함수이다. 일반구조체파일인 ***.s와는약간다른구조체파일이미리정의되어있어야한다. 구조체파일내의필드키는정의되는구조체의멤버변수와 1 : 1 mapping이되어있어야한다. 다음은필드버퍼와 C 구조체를 mapping시키는구조체파일의예이다. VIEW demo #type cname Fldkey count flag size null string demodata INPUT 5-20 carray carraydata CARRAYDATA 1-20 star char chardata CHARDATA c int inum INTDATA short snum SHORTDATA long lnum LONGDATA float fnum FLOATDATA double dnum DOUBLEDATA END 항목 type cname Fldkey count size null 구조체안의멤버변수의데이터형을의미한다. 멤버변수의이름을의미한다. 정한멤버변수와 mapping되는필드키를의미한다. ( 이필드키는 ***.f에정의되어있어야한다.) 구조체에서저장할수있는최대의필드순번을의미한다. string형인경우배열의크기를의미한다. 초기화될때의값을나타내는것으로필드버퍼에값이저장되지않은상태에서필드데이터를 C 구조체의버퍼로전송할경우기본적으로 C 구조체에복사되는값이다. 만약에 null 항목에값을지정하지않고필드버퍼에도값이저장되지않은경우각자료형에맞는기본값이 C 구조체에저장된다. string, carray, char 형의기본값은 NULL 이며 int, short, long 형의기본값은 0, float, double 형의기본값 은 0.0 이다. 제 2 장 FDL 함수 37
50 demo.s 또는 demo.v 에 VIEW 를정의한후클라이언트에서는 sdlc 유틸리티를이용하여 VIEW 파일을 다음과같이컴파일한다. $TMAXDIR$/sample/sdl> sdlc c v demo.s o tmax.sdl $TMAXDIR$/sample/sdl> sdlc c v demo.v o tmax.sdl 환경파일 ( 콘셸을사용하는경우 <.profile>) 에 SDLFILE로지정된이름으로 o 옵션으로 <.sdl> 파일을생성한다. 이렇게함으로써필드키와구조체간의변환정보가 SDLFILE에포함된다. 위의 VIEW 파일에정의되어있는필드키는반드시 ***.f에정의되어있어야한다는점을주의한다. VIEW 파일을컴파일하면 <demo_sdl.h> 와 <tmax.sdl> 파일이생성된다. 클라이언트프로그램에서는 <demo_sdl.h> 파일을 include해서사용한다. 서버에서는 sdlc 유틸리티를이용하여 VIEW 파일을다음과같이컴파일한다. $TMAXDIR$/sample/sdl> sdlc v demo.s 구조체파일을컴파일하면 <demo_sdl.c> 와 <demo_sdl.h> 파일이생성된다. 필드키와구조체간의변환정보가 <demo_sdl.c> 파일에있으므로이정보를사용해야하는서버프로그램을컴파일할때 <de mo_sdl.c> 파일과함께컴파일이되어야한다. 서버프로그램내에서는필요한정보를컴파일시에모두가지므로 <tmax.sdl> 파일이필요없다. 필드버퍼에서구조체로데이터를전송할때필드키와구조체의멤버변수의데이터와 mapping되지않을경우에는필드키가무시된다 fbget 필드버퍼에서지정한필드키에해당하는필드데이터를읽어오는함수이다. 데이터를필드버퍼에서읽어오는함수로동일한필드키로저장된데이터는순차적으로읽어서 loc에저장한다. 즉수동으로순번을증가시키지않고저장된필드순번만큼이함수를호출하면함수내에서자동으로필드순번을증가시켜서다음데이터를읽을준비가되므로해당필드키내에저장되어있는모든필드데이터를읽어올수있다. fbget() 을사용할경우에한번읽어온데이터는다시읽을수없으므로주의한다. 그리고저장된필드순번보다더많이 fbget 함수를호출하면마지막필드순번의필드데이터가계속반환된다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbget(fbuf *fbuf, FLDKEY fldkey, char *loc, FLDLEN *fldlen) 38 Tmax FDL Reference Guide
51 fbuf fldkey loc fldlen fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서읽어오려는필드키를의미한다. 순차적으로읽어온필드데이터를가리키는포인터이다. 필드키가정수형또는실수형인경우에는반드시각타입에맞는변수를사용하되앞에서기술한함수의프로토타입에맞게 type casting을한다. 읽어온데이터의길이를의미한다. 반환값 반환값 1-1 지정한필드키의필드데이터를정상적으로찾은경우이다. 지정한필드키를필드버퍼에서찾지못한경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에다음값중하나가설정된다. 에러코드 FBENOENT FBEINVAL FBETYPE 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. (CARRAY형인경우 fldlen을지정하지않은경우도해당된다.) Tmax에서지원하지않는타입이사용되었다. 예제 #include demo_fdl.h long rcvlen, ret; FLDLEN fldlen; char buffer[100]; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); 제 2 장 FDL 함수 39
52 fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, INPUT, cccc, 0); fbget(fbuf, INPUT, buffer, &fldlen); printf( Field Data: [%s]\n, buffer); /* output: Field Data: [aaaa] */ 관련함수 fbput(), fbchg_tu(), fbget_tu(), fbchg_tu(), fbgetval(), fbgetval_last_tu(), fbgetvals_tu(), fbgetvall_tu() fbgetalloc_tu 지정한필드키의필드순번에해당하는필드데이터를읽어오는함수이다. fldkey 및 nth 로지정한필드키의필드순번에해당하는필드데이터를읽어서 extralen에지정한길이만큼의새로운버퍼를할당하여해당버퍼에데이터를저장하고포인터를반환한다. 프로토타입 #include <fbuf.h> #include <atmi.h> char *fbgetalloc_tu(fbuf *fbuf, FLDKEY fldkey, int nth, int *extralen) fbuf fldkey nth extralen fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서읽어올필드키를의미한다. 데이터를읽어올필드키의필드순번을의미한다. 새로할당받아야하는버퍼의크기를의미한다. extralen 을 0 으로지정하면함수수행후새로할당해야하는버퍼의크기가필 드데이터의길이로설정된다. extralen 은할당한버퍼의크기가설정된다. 새로할당받은버퍼는사용한후반드시사용자가메모리를해제한다. 반환값 반환값 버퍼의포인터 함수호출에성공한경우이다. 40 Tmax FDL Reference Guide
53 반환값 NULL 필드버퍼에서지정한필드키를찾지못하거나함수수행중다른에러가발생하 였을경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에다음값중하나가설정된다. 에러코드 FBENOENT FBEMALLOC FBEINVAL FBETYPE 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 시스템에러로필드버퍼를메모리에할당하지못했을경우 fberror는 FBEMAL LOC로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. Tmax에서지원하지않는타입이사용되었다. 예제 #include demo_fdl.h long ret; int extralen; char *buffer; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, INPUT, cccc, 0); extralen = 4; buffer = fbgetalloc_tu(fbuf, INPUT, 0, &extralen); printf( Field Data: [%s]\n, buffer); /* output: Field Data: [aaaa], returned after adding 4 bytes to the length of the field value. */ 제 2 장 FDL 함수 41
54 fbfree(fbuf);. 관련함수 fbgetalloc_tut(), fbput(), fbchg_tu(), fbget_tu(), fbchg_tu(), fbgetval(), fbgetval_last_tu(), fbgetvals_tu(), fbgetvall_tu() fbgetalloc_tut 필드버퍼에서지정한필드키의필드순번에해당하는필드데이터를지정한타입으로필요한길이만큼버퍼를새로할당받아저장하여반환하는함수이다. 이함수를사용하면 fldkey 및 nth 로지정한필드키의필드순번에해당하는필드데이터를읽어온다. 필드데이터의타입과상관없이지정한타입으로변환하여 extralen에지정한길이만큼의새로운버퍼를할당하여데이터를저장하고포인터를반환한다. fbgetalloc_tut() 는 fbgetalloc_tu() 와매우유사하지만가져오는필드데이터의타입을변환할수있다는점이다르다. 프로토타입 #include <fbuf.h> #include <atmi.h> char *fbgetalloc_tut(fbuf *fbuf, FLDKEY fldkey, int nth, int type, int *extralen) fbuf fldkey nth type fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서읽어올필드키를의미한다. 데이터를읽어올필드키의필드순번을의미한다. 필드데이터를변환할데이터형을지정한다. type에지정할수있는값은다음과같다. - FB_CARRAY - FB_SHORT - FB_DOUBLE - FB_LONG - FB_STRING 42 Tmax FDL Reference Guide
55 - FB_CHAR - FB_FLOAT - FB_INT extralen 새로할당받아야하는버퍼의크기를 Byte 단위로나타낸다. extralen 을 0 으로지정하면함수수행후새로할당해야하는버퍼의크기가필 드데이터의길이로설정된다. 할당받은버퍼는사용한후반드시사용자가메모리를해제한다. 반환값 반환값 버퍼의포인터 함수호출에성공한경우이다. ( 필드데이터를저장한새로할당받은버퍼의포인터를반환한다. 반환값은 char * 형으로표현할수없는 int, long, double, long, float 형의경우에는상황에맞게 type casting 을한다.) NULL 필드버퍼에서지정한필드키를찾지못하거나함수수행중다른에러가발생하 였을경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에다음값중하나가설정된다. 에러코드 FBENOENT FBEMALLOC FBENOSPACE FBEBADFLD FBETYPE 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 시스템에러로, 필드버퍼를메모리에할당하지못했을경우 fberror는 FBEMAL LOC로설정된다. 필드버퍼에데이터를저장하거나복사할공간이부족할경우 fberror는 FBENOSPACE로설정된다. 유효하지않은필드키가사용된경우이다. 일반적으로필드키가 fdlc 유틸리티를사용하여컴파일되지않은필드키가사용되었을경우 fberror는 FBEBADFLD로설정된다. Tmax에서지원하지않는타입이사용되었다. 제 2 장 FDL 함수 43
56 에러코드 FBEINVAL 입력로지정된값중유효하지않은가있음을의미한다. 예를 들면 fbuf 가 NULL 로지정된경우해당에러가발생한다. 예제 #include demo_fdl.h long ret; int extralen; char *buffer; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, INPUT, cccc, 0); extralen = 4; buffer = fbgetalloc_tut(fbuf, INPUT, 0, FB_STRING, &extralen); printf( Field Data: [%s]\n, buffer); /* output: Field Data: [aaaa], returned after adding 4 bytes to the length of the field value. */ fbfree(fbuf); 관련함수 fbgetalloc_tu (), fbput(), fbget_tu(), fbchg_tu(), fbgetval(), fbgetval_last_tu(), fbgetvals_tu(), fbgetvall_tu() fbget_fbsize fballoc() 또는 tpalloc() 으로할당된필드버퍼의크기를반환하는함수이다. fballoc() 또는 tpalloc() 을통하여메모리에 1024Byte 보다작은필드버퍼를할당하려고할때기본적으로메모리는 1024Byte로할당한다. 이러한경우 Tmax 내부에서쓰이는헤더크기를더하여 fbget_fbsize() 는 = 1032Byte를반환한다. 그이외의경우에 fbget_fbsize() 의반환값은 fbcalcsize() 로계산한결과에헤더크기 (8Byte) 를더한값과같다. 프로토타입 44 Tmax FDL Reference Guide
57 #include <fbuf.h> #include <atmi.h> long fbget_fbsize(fbuf *fbuf) fbuf ffballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 반환값 반환값 필드버퍼의크기 함수호출에성공한경우이다. ( 메모리에할당된필드버퍼의크기를반환한다.) 오류 fberrno 에다음값이설정된다. 에러코드 FBEINVAL 입력로지정된값중유효하지않은가있음을의미한다. 예를 들면 fbuf 가 NULL 로지정된경우해당에러가발생한다. 예제 #include demo_fdl.h long ret; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, 1111, 0); ret = fbget_fbsize(fbuf ) ; printf( Field Buffer Size: [%ld]\n, ret); /* output: Field Buffer Size: [1024] */ 관련함수 제 2 장 FDL 함수 45
58 fbcalcsize(), tpalloc(), fballoc(), fbfree(), fbinit() fbget_fldkey fdlc 유틸리티에서컴파일되어생성된필드테이블 (FDLFILE에설정된 FDL 파일 ) 과관련하여지정한필드명과 matching되는식별자를반환하는함수이다. 이식별자를필드키라고부른다. 필드버퍼에저장되는데이터의형식은필드키와필드데이터의조합이기때문에필드버퍼에데이터를저장하기위해서는지정한필드이름에해당하는필드키를알아야한다. 프로토타입 #include <fbuf.h> #include <atmi.h> FLDKEY fbget_fldkey(char *name) name 필드테이블을생성하는데사용되는필드이름이다. 반환값 반환값 0 필드이름과 matching 되는필드키 지정한필드이름이필드테이블에존재하지않는경우이다. 지정한필드이름이필드테이블에존재하는경우이다. 예제 #include demo_fdl.h FLDKEY fkey; FBUF *sndbuf; fkey = fbget_fldkey( INPUT ); printf( Field Key : [%d]\n, fkey); /* output : Field Key : [ ] */... fbput(sndbuf, fkey, 1111", 0); 46 Tmax FDL Reference Guide
59 관련함수 fbget_fldname(), fbget_fldno(), fbget_fldtype(), fbget_strfldtype(), fbtypecvt() fbget_fldname fbget_fldkey() 와는반대로 fdlc 유틸리티를통하여컴파일되어생성된필드테이블 (FDLFILE에설정된 FDL 파일 ) 과관련하여지정한필드키와 matching되는필드이름을반환하는함수이다. 프로토타입 #include <fbuf.h> #include <atmi.h> char *fbget_fldname(fldkey fldkey) fldkey 필드테이블을생성하기위하여필요한데이터를정의한파일 (***.f) 을 fdlc 유틸리티를통하여컴파일하여생성된헤더파일 (***_fdl.h) 을이용하거나또는 fbget_fldkey() 를이용해서얻은필드키이다. 반환값 반환값 필드키와 matching 되지정한필드키에대한필드이름이필드테이블에존재하는경우이다. 는필드이름 NULL 지정한필드키에대한필드이름이필드테이블에존재하지않을경우이다. 예제 #include demo_fdl.h FLDKEY fkey; char *name; fkey = fbget_fldkey( INPUT ); printf( Field Key : [%d]\n, fkey); /* output : Field Key : [ ] */ name = fbget_fldname(fkey); printf( Field Name : [%s]\n, name); 제 2 장 FDL 함수 47
60 /* output : Field Name : [INPUT] */ 관련함수 fbget_fldkey(), fbget_fldno(), fbget_fldtype(), fbget_strfldtype(), fbtypecvt() fbget_fldno 필드테이블을생성하기위해필요한데이터중지정한필드키와 matching되는필드번호를반환하는함수이다. 필드테이블을생성하기위해서는필드형, 필드이름, 필드번호등이필요하며이러한조합으로유일한 (unique) 필드키를만들수있다. 이러한필드키를모아서관리하는것이필드테이블이다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbget_fldno(fldkey fldkey) fldkey 필드테이블을생성하기위하여필요한데이터를정의해놓은파일 (***.f) 을 fdlc 유틸리티를통하여컴파일하여생성된헤더파일 (***_fdl.h) 을이용하거나또는 fbget_fldkey() 를이용해서얻은필드키이다. 반환값 반환값 1-1 함수호출에성공한경우이다. 필드버퍼에서지정한필드키를찾지못하거나함수수행중다른에러가발생하였을경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에다음값중하나가설정된다. 48 Tmax FDL Reference Guide
61 에러코드 FBENOENT FBEINVAL FBETYPE FBEBADFLD 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. Tmax에서지원하지않는타입이사용되었다. 잘못된필드를사용하였다. 예제 #include demo_fdl.h long ret; FLDKEY len; int nth; char buffer[100]; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, INPUT, cccc, 0); fbgetlast_tu(fbuf, INPUT, &nth, buffer, &len); printf( Field Data: [%s], occurrence = %d, len = %d\n, buffer, nth, len); /* output: Field Data: [cccc], occurrence = 2, len = 4 */ 관련함수 fbput(), fbchg_tu(), fbget_tu(), fbgetval(), fbgetval_last_tu(), fbgetvals_tu(), fbgetvall_tu(), fbgetalloc_tu() fbget_fldtype 지정한필드키의필드형을정수로반환하는함수이다. 프로토타입 #include <fbuf.h> #include <atmi.h> 제 2 장 FDL 함수 49
62 int fbget_fldtype(fldkey fldkey) fldkey 필드테이블을생성하기위하여필요한데이터를정의해놓은파일 (***.f) 을 fdlc 유틸리티를통하여컴파일하여생성된헤더파일 (***_fdl.h) 을이용하거나또는 fbget_fldkey() 를이용해서얻은필드키이다. 반환값 반환값은다음과같이 1~8 까지의 int 값이다. 함수에서반환되는필드형과그에 matching 되는반환값은다음과같다. 반환값 필드형 character short integer integer long integer float double string character array(carray) 예제 #include demo_fdl.h FLDKEY fkey; int type; fkey = fbget_fldkey( INPUT ); printf( Field Key : [%d]\n, fkey);/* output: Field Key : [ ] */ type = fbget_fldtype(fkey); printf( Field Type : [%d]\n, type);/* output : Field Type : [7] */ 관련함수 fbget_fldname(), fbget_fldno(), fbget_fldkey(), fbget_strfldtype(), fbtypecvt() 50 Tmax FDL Reference Guide
63 2.23. fbgetlast_tu 필드버퍼에서지정한필드키에저장되어있는필드데이터중마지막순번의데이터를반환하는함수이다. 반환되는데이터가필드데이터중몇번째순번인지와필드데이터의길이를데이터와함께반환한다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbgetlast_tu(fbuf *fbuf, FLDKEY fldkey, int *nth, char *loc, int *len) fbuf fldkey nth loc len balloc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서읽어올필드키를의미한다. 지정한필드키에저장되어있는필드데이터중마지막순번이저장되는포인터로데이터를읽어올필드키의필드순번을저장한다. 가져온필드데이터를저장하는포인터이다. 가져온필드데이터의길이를저장하는포인터이다. 반환값 반환값 1-1 함수호출에성공한경우이다. 필드버퍼에서지정한필드키를찾지못하거나함수수행중다른에러가발생하였을경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에다음값중하나가설정된다. 에러코드 FBENOENT FBEINVAL FBETYPE 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. Tmax에서지원하지않는타입이사용되었다. 제 2 장 FDL 함수 51
64 에러코드 FBEBADFLD 잘못된필드를사용하였다. 예제 #include demo_fdl.h long ret; FLDKEY len; int nth; char buffer[100]; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, INPUT, cccc, 0); fbgetlast_tu(fbuf, INPUT, &nth, buffer, &len); printf( Field Data: [%s], occurrence = %d, len = %d\n, buffer, nth, len); /* output: Field Data: [cccc], occurrence = 2, len = 4 */ 관련함수 fbput(), fbchg_tu(), fbget_tu(), fbgetval(), fbgetval_last_tu(), fbgetvals_tu(), fbgetvall_tu(), fbgetalloc_tu() fbget_strfldtype 지정한필드키에저장될필드데이터의타입을문자열로반환하는함수이다. fbget_fldtype() 은지정한필드키의필드형을미리지정한정수로반환하지만이함수는필드형을문자열그대로반환한다. 프로토타입 #include <fbuf.h> #include <atmi.h> char *fbget_strfldtype(fldkey fldkey) 52 Tmax FDL Reference Guide
65 fldkey 필드테이블을생성하기위하여필요한데이터를정의해놓은파일 (***.f) 을 fdlc 유틸리티를통하여컴파일하여생성된헤더파일 (***_fdl.h) 을이용하거나또는 fbget_fldkey() 를이용해서얻은필드키이다. 반환값 반환값빈문자열 (" ") 문자열 ( 지정한필드키 에대한필드형 ) 로지정한필드키에해당하는필드형이없거나필드키가잘못지정된경우이다. 로지정한필드키에해당하는필드형이없거나필드키가존재하는경우이다. 예제 #include demo_fdl.h FLDKEY fkey; char *stype;.. fkey = fbget_fldkey( INPUT ); printf( Field Key : [%d]\n, fkey); /* output : Field Key : [ ] */ stype = fbget_strfldtype(fkey); printf( Field Type : [%s]\n, stype); /* output : Field type : [string] */ 관련함수 fbget_fldname(), fbget_fldno(), fbget_fldtype(), fbtypecvt() fbget_tu 필드버퍼에서지정한필드키의지정한필드순번에해당하는필드의데이터를읽어오는함수이다. fldkey 에서지정한필드키의 value에서지정한필드순번에해당하는필드의데이터를읽어온다. fbget_tu() 와유사한 fbget() 은읽어올필드키만지정하면그필드키에저장되어있는필드데이터를처음부터차례로순번을증가시켜가면서읽어온다. 이에비해 fbget_tu() 는지정한필드키에저장되어있는데이터중필드순번까지도지정할수있다. 또한 fbget() 의경우한번읽어온데이터에더이상접근할수없지만, fbget_tu() 는필드순번까지지정할수있으므로하나의필드데이터를여러번읽어올수있다. 프로토타입 제 2 장 FDL 함수 53
66 #include <fbuf.h> #include <atmi.h> int fbget_tu(fbuf *fbuf, FLDKEY fldkey, int nth, char *value, FLDLEN *len) fbuf fldkey nth value len fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서읽어올필드키를의미한다. 읽어올필드순번을나타낸다. 읽어온필드데이터를가리키는포인터이다. 필드키가정수형또는실수형인경우에는반드시각타입에맞는변수를사용하되앞에서기술한함수의프로토타입에맞게 type casting을한다. 읽어온데이터의길이를나타낸다. 반환값 반환값 1-1 지정한필드키가필드버퍼에존재하는경우이다. 지정한필드키가필드버퍼에존재하지않는경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에다음값중하나가설정된다. 에러코드 FBENOENT FBEINVAL FBETYPE FBEBADFLD 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. 입력로지정된값중유효하지않은가있음을의미한다. Tmax에서지원하지않는타입이사용되었다. 잘못된필드를사용하였다. 예제 #include demo_fdl.h char buffer[100]; 54 Tmax FDL Reference Guide
67 long rcvlen; FLDLEN fldlen; FBUF *fbuf; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbput(fbuf, INPUT, aaaa, 0); fbput(fbuf, INPUT, bbbb, 0); fbput(fbuf, OUTPUT, cccc, 0); fbget_tu(fbuf, INPUT, 1, buffer, &fldlen); printf( Data: [%s]\n, buffer) /* output: Data: [bbbb] */... 관련함수 fbput(), fbget(), fbget_tut(), fbgetval(), fbgetval_tu(), fbgetvals_tu(), fbgetvall_tu(), fbgetval_last_tu() fbget_tut 지정한필드키의필드순번에해당하는필드데이터를지정한타입으로변환하여반환하는함수이다. fldkey 에서지정한필드키의 nth에서지정한필드순번에해당하는필드의데이터를읽어온다. fbget_tu() 와거의같은역할을하지만 fbget_tu() 는지정한필드키의필드순번에해당하는필드데이터를그대로읽어오고, fbget_tut() 는필드데이터를지정한타입으로변환하여읽어올수있다는점이다르다. 프로토타입 #include <fbuf.h> #include <atmi.h> int fbget_tut(fbuf *fbuf, FLDKEY fldkey, int nth, char *value, FLDLEN *len, int type) fbuf fldkey nth fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 필드버퍼에서읽어올필드키를의미한다. 읽어올필드순번을의미한다. 제 2 장 FDL 함수 55
68 value len type 읽어온필드데이터를가리키는포인터이다. 만약필드키가정수형또는실수형인경우에는반드시각타입에맞는변수를사용하되앞에서기술한함수의프로토타입에맞게 type casting을한다. 읽어온데이터의길이를의미한다. 읽어온데이터형을변환할경우데이터형을지정한다. type에지정할수있는값은다음과같다 - FB_CARRAY - FB_SHORT - FB_DOUBLE - FB_LONG - FB_STRING - FB_CHAR - FB_FLOAT - FB_INT 반환값 반환값 1-1 지정한필드키가필드버퍼에존재하는경우이다. 지정한필드키가필드버퍼에존재하지않는경우이다. (fberror 에에러번호가설정된다.) 오류 fberrno 에다음값중하나가설정된다. 에러코드 FBENOENT FBETYPE FBEBADFLD FBEINVAL 지정한필드키가 FDLFILE( 환경변수 : 기본값은 <tmax.fdl>) 에정의되지않아서필드버퍼에서사용할수없는경우 fberror는 FBENOENT로설정된다. Tmax에서지원하지않는타입이사용되었다. 잘못된필드를사용하였다. 입력로지정된값중유효하지않은가있음을의미한다. 예를들면 fbuf가 NULL로지정된경우해당에러가발생한다. 56 Tmax FDL Reference Guide
69 예제 #include demo_fdl.h FBUF *fbuf; int ret, val=65; if ((fbuf = fballoc(10, 100)) == NULL) { printf( fballoc failed, errno = %d\n, fberror);... fbputt(fbuf, INPUT, (char *)&val, 0, FB_INT); fbputt(fbuf, INTDATA, "1111", 0, FB_STRING); fbprint(fbuf); fbget_tut(fbuf, INTDATA, 0, (char *)&ret, &fldlen, FB_INT); printf("field Data: [%d]\n", ret); /* output: Field Data: [1111] */... 관련함수 fbput(), fbget(), fbget_tu(), fbgetval(), fbgetval_tu(), fbgetvals_tu(), fbgetvall_tu(), fbgetval_last_tu() fbget_unused fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼중아직사용되지않은필드버퍼의크기를계산하여 Byte 단위로반환하는함수이다. 프로토타입 #include <fbuf.h> #include <atmi.h> long fbget_unused(fbuf *fbuf) fbuf fballoc() 또는 tpalloc() 으로메모리에할당된필드버퍼이다. 반환값 메모리에할당된필드버퍼중아직사용되지않은메모리의크기를 Byte 단위로반환한다. 오류 제 2 장 FDL 함수 57
Tmax FDL Reference Manual : TMFR : Tmax 3.8 : Sep 20, 2003 : Sep 20, 2003
Tmax FDL Reference Manual : TMFR-0702-08-380 : Tmax 3.8 : Sep 20, 2003 : Sep 20, 2003 Tmax FDL Reference Manual Tmax 3.8 1 2 Copyright (c) 2001 Tmax Soft Co., Ltd. All Rights Reserved.,,, Tmax soft.,,,.....
More informationTmax
Tmax FDL Reference Manual Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved Copyright Notice Copyright 2000 TmaxSoft Co., Ltd. All Rights Reserved. TmaxSoft Co., Ltd. 대한민국서울시강남구대치동 946-1 글라스타워 18 층우
More informationTmax
Tmax JTmaxServer User Guide Tmax v5.0 SP1 Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 263 분당스퀘어 (AK 프라자
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More information개발및운영 Tibero DB Link (Tibero To Oracle) - Local 방식
Tibero DB Link (Tibero To Oracle) - Local 방식 2014. 04. 16. 목차 1. 구성환경... 3 2. 환경설정... 3 2.1. Tibero 서버 (AIX) 에 Oracle instance Client 파일을업로드... 3 2.2. Oracle Instance Client에대한환경설정등록 (.profile)... 4 2.3.
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationMicrosoft Word - AnyLink Introduction v3.2.3.doc
Copyright 2007 Tmax Soft Co., Ltd. All Rights Reserved. AnyLInk Copyright Notice Copyright 2007 Tmax Soft Co., Ltd. All Rights Reserved. Tmax Soft Co., Ltd. 대한민국서울시강남구대치동 946-1 글라스타워 18 층우 )135-708 Restricted
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationPowerPoint 프레젠테이션
KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More information구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을
(structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined
More informationC++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationMicrosoft PowerPoint 웹 연동 기술.pptx
웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우
More informationPowerPoint Presentation
Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More informationThe Pocket Guide to TCP/IP Sockets: C Version
얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow
More informationAPI 매뉴얼
PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations
More informationuntitled
int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015
More informationDBMS & SQL Server Installation Database Laboratory
DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>
#include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0
More information슬라이드 1
/ 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file
More informationPowerPoint 프레젠테이션
Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐
More information[JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step
기타지식 [JEUS 7.0] eclipse plug-in 연동 2015. 06. 09 [JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step. 1]
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More informationMicrosoft PowerPoint - chap11-포인터의활용.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.
More informationTibero
Tibero 클라이언트설치가이드 Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구황새울로 329 번길 5 티맥스빌딩우 ) 463-824 Restricted Rights
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More information컴파일러
YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",
More information기초컴퓨터프로그래밍
구조체 #include int main() { } printf("structure\n"); printf("instructor: Keon Myung Lee\n"); return 0; 내용 구조체 (struct) Typedef 공용체 (union) 열거형 (enum) 구조체 구조체 (structure) 어떤대상을표현하는서로연관된항목 ( 변수 )
More information윤성우의 열혈 TCP/IP 소켓 프로그래밍
C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct
More informationFY2005 LIG
FY2005 LIG www.lig.co.kr FY2005 LIG 2005 LIG 7-44 "Profitable Growth" 14.5% 3 3,849 0.6%p 14.8% 3 355 306 7,300 5 3,691 2006 4 CI 2 "Profitable Growth 15.2% 2 1,000 VISION LIG LIG Leading Company 482006331
More informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More information목차 1. 노드매니저종류 Java Type SSH Type 노드설정파일및로깅 nodes.xml jeusnm.properties <servername>.properties...
개발및운영 JEUS7 Node Manager 가이드 2014. 12. 15 목차 1. 노드매니저종류... 3 1.1 Java Type... 3 1.2 SSH Type... 3 2. 노드설정파일및로깅... 3 2.1 nodes.xml... 3 2.2 jeusnm.properties... 4 2.3 .properties... 4 2.4 JeusNodeManager.log...
More informationPoison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3
Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More information튜닝및모니터링 HP JVM 튜닝옵션
HP JVM 튜닝옵션 2013. 11. 01 목차 1. 개요... 3 2. JVM 특징소개... 3 3. JVM 주요옵션소개... 3 4. 분석기술... 16 2 1. 개요 HP JVM 의특징을살펴보고, TroubleShooting 방법과, 실제 Site 튜닝사례를살펴보도록한다. 2. JVM 특징소개 JVM 메모리영역. 3. JVM 주요옵션소개 GC command-line
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More information개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.
설치및환경설정 JDBC 접속세션구분 / 확인 2013. 11. 01 개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다. 사용하기 JEUS 에서설정방법
More information슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
More information<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>
쉽게풀어쓴 C 언어 Express 제 17 장동적메모리와연결리스트 이번장에서학습할내용 동적메모리할당의이해 동적메모리할당관련함수 연결리스트 동적메모리할당에대한개념을이해하고응용으로연결리스트를학습합니다. 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More information개발및운영 Tibero Perl 연동
Tibero Perl 연동 2014. 05. 27. 목차 1. Windows에서의홖경구성... 3 1.1 Tibero ODBC Driver 설치... 3 1.2. Tool 설치... 5 2. Unix에서의홖경구성... 6 2.1 iodbc 설치... 7 2.2 Tibero 설치... 7 2.3 Iodbc drvier manager 등록... 7 3. Tibero
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More information목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More information02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More information인디쓔피-IOM핸돜벁닄큐1014pdf, page 59 @ Preflight ( IOM핸돜벁닄큐__1014 )
Publisher: International Organization for Migration 17, route des Morillons 1211 Geneva 19 Switzerland Tel: +41.22.717 91 11 Fax: +41.22.798 61 50 E-mail: hq@iom.int Internet: http://www.iom.int ISBN 978
More informationMicrosoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600
균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 16 강. 파일입출력목차 파일입출력기초 파일입출력모드 텍스트파일과이진파일 이진파일입출력 임의접근 1 /18 16 강. 파일입출력파일입출력기초 파일입출력과정 파일스트림객체생성 파일열기 사용 : 기본적으로표준입출력객체 (cin, cout) 사용방법과동일 파일닫기 파일스트림클래스의종류
More informationMicrosoft PowerPoint - Perpect C 02.ppt [호환 모드]
02 C 프로그래밍기초 충남대학교이형주 1 C 프로그램구조 콘솔응용프로그램 2 프로그램실행순서 C 프로그램은여러함수의조합으로구성 함수란정해진규칙에의하여일련의작업을수행하는프로그램의단위 실행순서 main 함수는프로그램이실행되면가장먼저시작되는부분 모든함수내부에서는위에서아래로, 좌에서우로, 문장이위치한순서대로실행 3 전처리기 전처리기 (preprocessor) 미리처리하는프로그램으로,
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현
More informationPowerPoint 프레젠테이션
Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2
More informationTablespace On-Offline 테이블스페이스 온라인/오프라인
2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More information<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력
More informationPowerPoint Presentation
FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org
More information마리오와 소닉 리우 올림픽™
마리오와 소닉 리우 올림픽 1 사용하기 전에 준비하기 2 유저 콘텐츠에 대하여 3 인터넷으로 이용 가능한 기능 4 보호자 여러분께 5 amiibo란 시작하기 전에 6 게임 소개 7 게임 시작 방법 8 조작 방법 9 데이터 저장과 삭제 통신으로 더욱 즐기기 10 대전 모드 11 포켓 마라톤 12 기록 기타 13 사용 곡명과 작곡자 소개 14 플레이 정보 송신
More information- i - - ii - - i - - ii - - i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 -
More informationINDUS-8.HWP
i iii iv v vi vii viii ix x xi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
More informationCONTENTS.HWP
i ii iii iv v vi vii viii ix x xi - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 - - 19 - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 -
More informationMicrosoft PowerPoint - e pptx
Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells
More informationuntitled
시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000
More informationMicrosoft PowerPoint - Chapter 6.ppt
6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)
More informationData Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager
Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1
More information1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-
1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다. 1.2.1 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-1 연산범위이유 : 00000000 00000000 00000000 00000000의 32
More information