데이터 유형 정의를 수동으로 작성하는 방법은 다음 두 가지가 있습니다.
활동 작성 도구의 사용. 활동 작성 사용은 제 11 장을 참조하십시오.
수동으로 데이터 유형 정의 작성
수동으로 데이터 유형 정의를 작성하려면 사용자가 데이터베이스를 편집해야 합니다.
이 장에서는 데이터 유형 정의를 수동으로 작성하는 방법에 대해 설명합니다.
데이터 유형의 소개를 보려면 제 10 장를 참조하십시오.
데이터 유형 정의에 대한 참조 정보는 dtddsfile(4) 매뉴얼 페이지를 참조하십시오.
데이터 유형을 수동으로 작성하면 데이터 유형 정의 구문에 구축된 모든 기능을 사용할 수 있습니다.
다음과 같은 데이터 유형 기능을 사용하려면 데이터 유형을 수동으로 작성해야 합니다.
위치(경로) 기준 데이터 유형 지정
열기 및 인쇄 이외의 데이터 유형과 관련된 활동을 지정하는 기능
동일한 데이터 유형에 대한 복수의 이름, 패턴 또는 내용 기준-예를 들어, *.abc 또는 *.def 파일을 기준으로 하는 데이터 유형
링크 기준 데이터 유형 지정
데이터 유형 정의는 다음과 같은 두 가지 별도의 데이터베이스 정의로 구성됩니다.
각 DATA_ATTRIBUTES
정의에는 하나 이상의 DATA_CRITERIA
정의가 있어야 합니다.DATA_ATTRIBUTES
정의는 그와 연관된 DATA_CRITERIA
를 여러 개 가질 수 있습니다.
예를 들어, 포스트스크립트 파일에 대해 파일 관리자에서 포스트스크립트가 표시되는 모양과 동작하는 방법을 설명하는 속성 정의를 작성할 수 있습니다. 그런 다음 포스트스크립트 데이터 유형에 두 개의 개별 기준을 정의할 수 있는데, 하나는 파일 이름에 근거한 정의이고, 다른 하나는 파일 내용에 근거한 정의입니다.
자세한 내용은 215 페이지의 "데이터 유형에 대한 데이터 기준 정의"를 참조하십시오.
이 절에서는 데이터 유형 환경설정 파일을 작성하는 방법을 설명합니다.
데이터 유형을 포함하는 환경설정 파일은 다음과 같은 요구사항을 만족해야 합니다.
파일은 이름 지정 규약 name .dt를 사용해야 합니다.
파일은 데이터베이스 검색 경로에 위치해야 합니다. 기본 검색 경로는 다음과 같습니다.
개인 데이터 유형-HomeDirectory/.dt/types
시스템 전체 데이터 유형-/etc/dt/appconfig/types/language
내장 데이터 유형-/usr/dt/appconfig/types/language. 사용자는 이 디렉토리를 사용할 수 없습니다.
데이터베이스 검색 경로를 수정하는데 대한 내용은 137 페이지의 "검색 경로 값 설정"을 참조하십시오.
기존의 데이터베이스 파일을 열거나 새로운 데이터베이스 파일을 작성하십시오.
자세한 내용은 이전 절 "데이터 유형에 대한 환경설정 파일"을 참조하십시오.
다음 구문을 사용하여 데이터 유형의 데이터 속성을 정의하십시오.
DATA_ATTRIBUTES data_type_name { ICON image_name DESCRIPTION string attribute_field attribute_field ... }
여기서
data_type_name-이 데이터 유형에 주어진 고유한 이름입니다.
image_name-아이콘 파일의 파일 이름 또는 경로. 파일의 기본 이름을 사용합니다. 예를 들어, 아이콘 파일 myimage.m.pm과 myimage.t.pm에는 myimage을 사용합니다.
attribute_field-데이터 유형의 모양과 동작을 정의하는 필드.
string-문자열. 내용은 데이터 유형에 대한 항목 도움말입니다.
"개인 활동 및 데이터 유형 작성의 예"를 참조하십시오.
다음 구문을 사용하여 데이터 유형의 데이터 기준을 정의하십시오.
DATA_CRITERIA criteria_name { DATA_ATTRIBUTES_NAME data_type_name criteria_field criteria_field ... }
여기서
criteria_name-이 기준 정의의 고유한 이름입니다.
data_type_name- DATA_ATTRIBUTES
정의에서 사용하는 이름입니다.
criteria_field-이 데이터 유형에 파일을 지정하는 기준을 정의하는데 사용하는 필드입니다.
215 페이지의 "데이터 유형에 대한 데이터 기준 정의"를 참조하십시오.
데이터베이스 파일을 저장하십시오.
데이터 유형에 대한 아이콘을 작성하십시오.
자세한 내용은 "데이터 유형에 사용되는 아이콘 이미지의 지정"을 참조하십시오.
필요에 따라, 속성 정의의 ACTIONS 필드에 나열된 활동을 작성하십시오.
데스크탑_제어기의 추가 폴더에 있는 활동 재로드를 두 번 눌러 데이터베이스를 재로드하십시오.
시스템에 xgif라는 GIF 그림을 표시하는 응용 프로그램이 있다고 가정합시다. 일반적으로 다음 명령어를 실행하여 프로그램을 실행합니다.
xgif filename
GIF 그림은 다음과 같은 몇 가지 방식으로 표시할 수 있습니다.
GIF 데이터 파일을 두 번 누르는 방법
데이터 파일을 선택하고 선택 메뉴에서 해당 응용 프로그램을 선택하는 방법
새 파일 HomeDirectory /.dt/types/GifViewer.dt를 열어서 편집하십시오.
데이터 유형 정의를 입력하십시오.
DATA_ATTRIBUTES Gif { DESCRIPTION Gif image file. ICON GifIcon ACTIONS View } DATA_CRITERIA Gif_Criteria { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
GifViewer 활동의 활동 정의를 입력하십시오.
ACTION GifViewer { EXEC_STRING xgif %(File)Arg_1"Gif file to view:" WINDOW_TYPE NO_STDIO DESCRIPTION 파일을 두 번 누르거나 놓아 \ Gif 뷰어를시작하십시오. }
이 정의에는 ICON 필드가 포함되지 않기 때문에 활동은 시스템의 기존 아이콘을 사용하게 됩니다.
다음과 같은 매핑 활동을 입력하여 GifViewer 활동을 데이터 유형 정의에 나열된 보기 활동에 연결하십시오. 이 보기 활동을 Gif 유형 파일로 제한하려면 ARG_TYPE 필드를 사용하십시오.
ACTION View { ARG_TYPE Gif TYPE MAP MAP_ACTION GifViewer }
파일을 저장하십시오.
데스크탑_제어기의 추가 폴더에 있는 활동 재로드를 두 번 눌러 데이터베이스를 재로드하십시오.
DATA_ATTRIBUTES
정의는 데이터 유형의 모양과 동작을 정의합니다. 데이터 유형의 이름을 지정하고 다음 사항을 지정할 수 있는 기능을 제공합니다.
파일 관리자 아이콘(ICON 필드)
선택 메뉴의 두 번 누르기 동작과 내용(ACTIONS 필드)
파일 관리자에서 사용되는 아이콘을 지정하려면 ICON 필드를 사용하십시오. 사용자가 아이콘 이미지를 지정하지 않으면, 파일 관리자는 레이블만을 표시합니다.
기본 파일 이름은 아이콘 이미지를 포함하는 파일 이름에서 크기(m과 t) 및 이미지 유형(bm과 pm)에서 파일 이름 접미사를 뺀 이름입니다. 예를 들어, 파일 이름이 GameIcon.m.pm과 GameIcon.t.pm인 경우, GameIcon을 사용합니다.
기본 파일 이름을 사용하는 경우에는 아이콘 파일이 다음과 같은 아이콘 검색 경로의 디렉토리에 위치해야 합니다.
개인 아이콘: HomeDirectory/.dt/icons
시스템 전체 아이콘: /etc/dt/appconfig/icons/language
전체 파일 이름을 포함하는 아이콘 파일의 절대 경로.
절대 경로는 아이콘 파일이 아이콘 검색 경로에 없는 경우에만 사용해야 합니다. 예를 들어, 아이콘 파일 GameIcon.m.pm이 아이콘 검색 경로에 없는 디렉토리 /doc/projects에 있는 경우, ICON 필드의 값은 /doc/projects/GameIcon.m.pm이 됩니다.
표 13-1에는 사용자가 작성해야 하는 아이콘의 크기와 해당 파일 이름이 나열되어 있습니다.
픽셀 크기 |
비트맵 이름 |
픽스맵 이름 |
---|---|---|
32 x 32 |
name.m.bm |
name .m.pm |
16 x 16 |
name.t.bm |
name .t.pm |
데이터 유형을 활동과 연결하는 데에는 다음과 같은 두 가지 방법이 있습니다.
활동은 활동 정의의 ARG_TYPE 필드를 사용하여 지정된 데이터 유형으로 제한될 수 있습니다.
예를 들어, 다음과 같은 데이터 유형 정의는 시스템 관리자가 작성하고 이름 지정 규약 *.rm을 사용하는 특별한 "readme" 파일에 대한 데이터 유형을 만듭니다.
DATA_ATTRIBUTES SysReadmeFile { ICON SysReadMe ACTIONS Open,Respond } DATA_CRITERIA SysReadmeFileCriteria { NAME_PATTERN *.rm DATA_ATTRIBUTES_NAME SysReadmFile }
파일에 대한 특별한 응답 활동이 아래에 정의되어 있습니다. 이 활동은 문서 편집기에서 쓰기 가능한 파일의 사본을 엽니다. 파일을 저장하고 문서 편집기를 종료하면, 파일이 시스템 관리자에게 우편으로 전송됩니다(우편 주소는 sysadmin@utd입니다).
ACTION Respond { ARG_TYPE SysReadmeFile EXEC_STRING /bin/sh -c 'cp %Arg_1% $HOME/readme.temp;\ chmod +w $HOME/readme.temp; \ dtpad $HOME/readme.temp; \ cat $HOME/readme.temp | \ /usr/bin/mailx sysadmin@utd; \ rm $HOME/readme.temp' WINDOW_TYPE NO_STDIO }
파일이 보이지 않는 데이터 유형일 경우, 해당 파일은 파일 관리자에 나타나지 않습니다.
이러한 유형의 객체가 숨겨지도록 지정하려면 DATA_ATTRIBUTES
정의에서 PROPERTIES 필드를 다음과 같이 사용하십시오.
PROPERTIES invisible
표 13-2은 응용 프로그램 프로그래머가 주로 사용하는 DATA_ATTRIBUTES
필드를 나타냅니다. 이러한 필드는 사용자가 다양한 데스크탑 활동을 수행할 때 파일을 동작시키는 방법을 지정합니다.
자세한 내용은 개발자 환경 설명서의 일부인 공통 데스크탑 환경 프로그래머용 설명서를 참조하십시오.
표 13-2 DATA_ATTRIBUTES 필드 및 설명
필드 |
설명 |
---|---|
디렉토리와 같은 보관소를 위한 필드. 파일이 이 데이터 유형의 보관소로 이동될 때 수행할 활동을 지정합니다. |
|
디렉토리와 같은 보관소를 위한 필드. 파일이 이 데이터 유형의 보관소로 복사될 때 수행할 활동을 지정합니다. |
|
파일이 이 데이터 유형의 파일에 링크될 때 수행할 활동을 지정합니다. |
|
이 데이터 유형의 파일이 텍스트 상자에 표시될 수 있는 텍스트를 포함하도록 지정합니다. |
|
해당 ToolTalk 매체 유형을 지정합니다. |
|
해당 MIME 유형을 지정합니다. |
|
해당 X400 유형을 지정합니다. |
DATA_CRITERIA
정의는 객체 유형을 파일이나 디렉토리에 지정하는데 사용되는 기준을 정의합니다.
객체 유형 지정에 대해 표 13-3에 있는 기준을 사용할 수 있습니다.
표 13-3 DATA_CRITERIA 기준 및 설명
기준 |
설명 |
---|---|
파일 이름 | |
파일 위치 | |
파일 내용 | |
파일 모드 | |
객체가 링크되는 파일에 따라 유형이 지정됩니다. |
한 데이터 유형에 대해 두 개 이상의 기준을 사용할 수 있습니다. 그러나 한 데이터 유형에 NAME_PATTERN과 PATH_PATTERN 기준을 같이 사용할 수는 없습니다.
이름 지정 요구사항을 지정하려면 NAME_PATTERN 필드를 사용하십시오. 필드 값은 다음과 같은 와일드카드를 포함할 수 있습니다.
?-단일 문자에 해당합니다.
[cc...]-대괄호로 묶은 모든 문자(c)에 해당합니다.
[c-c]-c에서 c까지의 모든 문자에 해당합니다.
다음과 같은 데이터 유형 정의는 파일 이름에 기초한 데이터 유형을 작성합니다. 파일 이름은 QS로 시작하여 .doc로 끝나야 합니다.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION 이 파일에는 QS 프로젝트에 대한 문서가 \ 포함되어 있습니다. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
다음과 같은 정의는 Demo_n이라는 디렉토리에 대한 데이터 유형을 작성하며, n은 0-9 사이의 수입니다.
DATA_ATTRIBUTES Demo_directory { DESCRIPTION 디렉토리입니다. 디렉토리를 열려면 두 번 누르십시오. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
경로를 지정하려면 PATH_PATTERN 필드를 사용하십시오. NAME_PATTERN에서와 같이 와일드카드 문자를 사용할 수 있습니다.
예를 들어, 다음과 같은 데이터 유형은 경로에 기초한 기준을 사용합니다.
DATA_ATTRIBUTES Project_Graphics { DESCRIPTION QS 프로젝트에 대한 그래픽 파일입니다. 그래픽을 보려면 \ 아이콘을 두 번 누르십시오. ICON QSgraphics } DATA_CRITERIA Project_Graphics_Criteria { DATA_ATTRIBUTES_NAME Project_Graphics PATH_PATTERN */projects/QS/graphics/* }
파일 이름과 파일 위치 모두에 기초한 데이터 유형을 작성하려면 PATH_PATTERN 값에 파일 이름을 포함시키십시오. 한 기준 정의에 NAME_PATTERN과 PATH_PATTERN을 같이 사용할 수 없습니다.
아래 정의된 QS_Source_Files 데이터 유형은 이름이 appn.c인 모든 파일에 적용됩니다. 여기서 n은 1에서 9 사이의 값이며 파일은 */projects/QS의 하위 디렉토리에 있습니다.
DATA_ATTRIBUTES QS_Source_Files { ... } DATA_CRITERIA QS_Source_Files_Criteria { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME QS_Source_Files }
다음 데이터 유형은 chnn.xxx라는 디렉토리 /doc/project1에 있는 모든 파일에 적용되며, n은 0에서 9 사이의 수이고, xxx는 세 자로 된 파일 이름 접미사입니다.
DATA_ATTRIBUTES ChapterFiles { DESCRIPTION 프로젝트 문서에 대한 장 파일입니다. ICON chapter ACTIONS Edit,Print } DATA_CRITERIA Chapter_Criteria { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME ChapterFiles }
모드 기준은 일반적으로 이름, 위치 또는 내용에 기초한 유형 지정을 조합하여 사용됩니다. 이러한 기준을 사용하면 데이터 유형을 파일이나 디렉토리로 제한하거나 필수인 읽기, 쓰기 및 실행 권한을 지정할 수 있습니다.
MODE 필드에는 논리 연산자(표 13-4)와 문자(표 13-5)가 포함될 수 있습니다.
표 13-4 MODE 필드 논리 연산자 및 설명
연산자 |
설명 |
---|---|
! | |
& | |
| |
표 13-5 MODE 필드 논리 연산자 및 설명
문자 |
설명 |
---|---|
데이터 유형이 파일에만 적용됩니다. |
|
데이터 유형이 디렉토리에만 적용됩니다. |
|
r |
파일을 모든 사용자가 읽을 수 있습니다. |
파일을 모든 사용자가 쓸 수 있습니다. |
|
파일을 모든 사용자가 실행할 수 있습니다. |
|
파일이 링크입니다. |
특정 모드에 대한 기본값은 해당 모드에 구애받지 않는 것입니다.
다음 모드 필드는 데이터 유형을 설명한 내용으로 제한합니다.
f&!w-읽기 전용 파일
!w-읽기 전용 파일 및 디렉토리
f&x-실행 파일
f&r&x-쓰기와 실행이 모두 가능한 파일
x|!w-실행 가능하거나 읽기 전용인 파일
다음 데이터 유형은 이름 지정 규약 *.doc에 따라 파일 이름을 정한 읽기 전용이며 실행 불가능한 파일의 데이터 유형을 작성합니다.
DATA_ATTRIBUTES ReadOnlyDocument { ICON read_only DESCRIPTION 이 문서는 쓰기 가능하지 않습니다. 두 번 누르면 \ 파일의 읽기 전용 사본으로 편집기를 실행합니다. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
파일 내용에 기초한 데이터 유형을 지정하려면 CONTENT 필드를 사용하십시오. 내용 기반 데이터 유형 지정은 이름 또는 위치 기반 데이터 유형 지정과 조합하여 사용할 수 있습니다.
이 유형 지정은 파일의 문자열 또는 숫자를 기준으로 할 수 있습니다. 파일의 첫 바이트는 번호 0으로 지정됩니다.
파일의 숫자 내용에는 다음 구문을 사용하십시오.
CONTENT starting_byte byte number CONTENT starting_byte short number CONTENT starting_byte long number
디렉토리의 내용에는 다음 구문을 사용하십시오.
CONTENT 0 filename "file_name"
8진(o로 시작) 및 16진(oX로 시작) 숫자에 대해 표준 C 표기법을 사용하십시오.
내용 기반 데이터 유형 지정을 사용하면 시스템 성능이 느려집니다. 가능하면 이름이나 위치 기반 유형 지정을 사용하십시오.
예를 들어, 다음과 같은 데이터 유형 Writable_Wingz는 파일의 맨 앞에 문자열 WNGZ이 있고 쓰기 권한을 갖는 모든 파일에 적용됩니다.
DATA_ATTRIBUTES Writable_Wingz { ... } DATA_CRITERIA Writable_Wingz_Criteria { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Writable_Wingz }
다양한 독립적 기준을 사용하여 데이터 유형을 작성할 수 있습니다. 즉, 파일이 기준 중 하나(또는 두 가지 모두)를 충족하는 경우 데이터 유형에 지정됩니다.
데이터 유형에 대한 DATA_ATTRIBUTES
정의를 작성하십시오.
각 기준에 대한 DATA_CRITERIA
정의를 작성하십시오.
각 기준을 동일한 DATA_ATTRIBUTES
정의로 연결하려면 DATA_ATTRIBUTES_NAME을 사용하십시오.
예를 들어, 다음 정의는 Mif 데이터 유형을 작성합니다. 유형 지정은 이름 또는 내용을 기준으로 합니다.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }
데이터 유형의 검색 경로에는 언어별 위치가 포함됩니다. 데스크탑은 LANG의 값을 사용하여 데이터 유형 정의를 찾기 위해 검색되는 위치를 결정합니다.
지역화된 활동 정의는 활동 검색 경로의 언어별 디렉토리에 있어야 합니다.
기본 검색 경로는 다음과 같습니다.
개인 활동: HomeDirectory/.dt/types
시스템 전체 활동: /etc/dt/appconfig/types/language
내장 활동: /usr/dt/appconfig/types/language