XSTR(1)

명칭
xstr - 공유 캐릭터 라인을 실현하기 위해서(때문에) C 언어 프로그램으로부터 캐릭터 라인을 추출한다

서식
xstr [-c] [-] [-v] [file]

해설
xstr 유틸리티는, 거대한 프로그램의 캐릭터 라인 부분을 보관 유지하는 데이타베이스 파일 strings (을)를 메인트넌스 합니다. 프로그램중의 캐릭터 라인은 공통 캐릭터 라인 에리어에의 참조에 치환됩니다. 이것에 의해, 공유 캐릭터 라인 정수를 실현될 수 있습니다. 이것은 특히 read-only 인 캐릭터 라인에 유효합니다.

옵션은, 이하의 것이 이용 가능합니다:

-   표준 입력으로부터 소스를 읽어들입니다.

-c  지정된 C 언어 소스 또는 표준 입력으로부터 캐릭터 라인을 추출해, 캐릭터 라인을 (&xstr[number]) 형식으로 변환해, 적당한 number 를 할당합니다. 적절한 xstr 의 선언이 파일의 선두에 삽입됩니다. 변환한 C 언어 소스 (은)는 파일 x.c 에 출력됩니다. 캐릭터 라인은 캐릭터 라인 데이타베이스 파일 strings 에 격납됩니다. 벌써 같은 캐릭터 라인이 데이타베이스중에 존재하고 있는 경우, 및 이미 존재하는 캐릭터 라인의 사픽스의 경우, 데이타베이스는 변경되지 않습니다.

-v  장황 모드.

프로그램의 전원시 파일을 컴파일 한 후, 공통 캐릭터 라인 area를 선언하는 파일 xs.c (을)를, 이하와 같이 명령을 실행해 작성할 수 있습니다.

    xstr

이후에로 파일 xs.c (을)를 컴파일 해, 다른 오브젝트 파일과 링크 합니다. xs.c 안의 캐릭터 라인 배열을 read-only 로 할 수 있다면, 필요한 area와 스왑 에 의한 오버헤드를 줄일 수가 있습니다.

xstr (은)는 또, 1 개의 파일에게만 적용할 수도 있습니다. 다음의 명령

    xstr name

에 의해, 같은 디렉토리내의 파일 strings (을)를 변경하거나 참조하는 일 없이, x.c (와)과 xs.c (을)를 작성합니다.

C 언어 프리프로세서의 나중에 xstr (을)를 실행하는 것이 편리한 경우, 혹은 그렇게 하는 것이 필요한 경우가 있습니다. 매크로에 의해 캐릭터 라인이 생성될 때등이 그렇습니다. 이 때는 이하와 같은 명령열을 실행합니다.

    cc -E name.c | xstr -c -
    cc -c x.c
    mv x.o name.o

xstr 유틸리티는, 새로운 캐릭터 라인을 추가할 필요가 없는 한, 파일 strings (을)를 갱신하지 않습니다. 이 때문에, make(1) 하지만 불필요하게 xs.o (을)를 다시 만드는 것 를 없앨 수가 있습니다.

관련 파일
strings
    캐릭터 라인 데이타베이스
x.c 변환 후의 원시 파일
xs.c
    배열 `xstr'를 정의한 C 원시 코드
/tmp/xs*
    중간 파일

관련 항목
mkstr(1)

버그
어느 캐릭터 라인이 다른 캐릭터 라인의 사픽스이며, 한편 짧은 편의 캐릭터 라인 쪽이 먼저 xstr 에 의해 처리되었다면, 비록, 긴 편의 캐릭터 라인만을 격납하면 좋은 경우에도, 양쪽 모두의 캐릭터 라인이 데이타베이스 strings 에 격납됩니다.

역사
xstr 하 3.0BSD 그리고 추가되었습니다.