STRFILE(8)

명칭
strfile, unstr - 캐릭터 라인을 격납하기 위한 랜덤 억세스 파일을 작성한다

서식
strfile [-iorsx] [-c char] source_file [output_file] unstr source_file

해설
strfile 하 1 개의 퍼센트 기호 ‘%’ (을)를 포함한 행으로 단락지어지는 행 그룹을 포함한 파일을 읽어들여, 헤더 구조와 각각의 행 그룹의 파일 오프셋(offset)를 포함한다 데이터 파일을 작성합니다. 이 파일에 의해 캐릭터 라인의 랜덤 억세스가 가능해집니다.

출력 파일은, 그것이 명령행에 대해 지정되어 있지 않은 경우, source_file.dat 그렇다고 하는 파일명이 됩니다.

지정할 수 있는 옵션으로서 다음의 것이 있습니다.

-C  파일에 코멘트가 포함되는 것을 나타내는 플래그입니다. 본옵션은, 헤더의 str_flags 필드의 STR_COMMENTS 비트를 세트 시킵니다. 코멘트는, 줄머리의 2 개의 단락 캐릭터로 지시받습니다만, strfile 는 코멘트행에 대해서 특별한 처리를 실시하지 않습니다.

-c char
    단락 캐릭터를 퍼센트 기호로부터 char (으)로 변경합니다.

-i  캐릭터 라인의 줄서 대체를 행할 때에, 대문자·소문자를 구별하지 않습니다.

-o  캐릭터 라인을 알파벳순서에 줄서 바꿉니다. 오프셋(offset) 테이블은 참조되는 행 그룹의 알파벳순서에 정렬 됩니다. 캐릭터 라인의 머리의 알파벳과 숫자 이외의 캐릭터는 무시됩니다. 이 옵션을 지정하면(자), 헤더중의 str_flags 필드의 STR_ORDERED 비트가 세트 됩니다.

-r  캐릭터 라인에의 액세스를 랜덤화합니다. 오프셋(offset) 테이블중의 엔트리는 랜덤에 줄서 바꿀 수 있습니다. 이 옵션을 지정하면(자), 헤더중의 str_flags 필드의 STR_RANDOM 비트가 세트 됩니다.

-s  아무것도 표시하지 않고 실행합니다. 종료시에 요약의 메세지를 표시하지 않습니다.

-x  행 그룹중의 각 알파벳 캐릭터를 단순 시저 암호 (simple caesar cypher)에 있어서의 13 포지션만 로테이트 합니다. 이 옵션을 지정하면(자), 헤더중의 str_flags 필드의 STR_ROTATED 비트가 세트 됩니다.

헤더의 포맷은 이하대로입니다.

    #define	VERSION	1
    unsigned long	str_version;	/* 버젼 번호 */
    unsigned long	str_numstr;	/* 파일중의 캐릭터 라인의 수 */
    unsigned long	str_longlen;	/* 최장 캐릭터 라인의 길이 */
    unsigned long	str_shortlen;	/* 최단 캐릭터 라인의 길이 */
    #define	STR_RANDOM	0x1	/* 랜덤 플래그의 위치 */
    #define	STR_ORDERED	0x2	/* 줄서 대체 플래그의 위치 */
    #define	STR_ROTATED	0x4	/* rot-13된 텍스트 */
    unsigned long	str_flags;	/* flag bit 필드 */
    char str_delim;			/* 단락 캐릭터 */

모든 필드는 네트워크 바이트 오더로 쓰여집니다.

unstr 하 strfile 그리고 행한 것을 바탕으로 되돌리기 위한 것입니다. source_file 안에 포함되는 캐릭터 라인을 source_file.dat 파일의 헤더에 리스트 된 순서로 표준 출력에 표시합니다. -o (을)를 사용해 strfile (을)를 실행한 후, unstr (을)를 사용해 그것을 테이블의 순서에 덤프 하는 것에 의해, 입력 파일의 정렬 된 버젼을 작성하는 것이 가능합니다.

관련 항목
byteorder(3), fortune(6)

관련 파일
strfile.dat
    디폴트의 출력 파일.

역사
strfile 유틸리티는 4.4BSD (으)로부터 등장했습니다.