.\"
.\"Copyright 1991 Sony Corporation
.\"
.\"Permission to use, copy, modify, distribute, and sell this software and its
.\"documentation for any purpose is hereby granted without fee, provided that
.\"the above copyright notice appear in all copies and that both that
.\"copyright notice and this permission notice appear in supporting
.\"documentation, and that the name of Sony not be used in advertising or
.\"publicity pertaining to distribution of the software without specific,
.\"written prior permission.  Sony makes no representations about the
.\"suitability of this software for any purpose.  It is provided "as is"
.\"without express or implied warranty.
.\"
.\"SONY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
.\"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SONY
.\"BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\"WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
.\"OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
.\"CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\"Author: Noriyuki Hosoe, Sony Corporation
.\"
.TL
sj3lib Cu
.AB
.LP
\fBsj3lib\fP ́A\j[ijŊJꂽϊT[o \fIsj3serv\fP 
ʐMϊsANCAgpCułB
.sp
AvP[VvÓA\fBsj3lib\fP gp邱Ƃɂ
\&  \fIsj3serv\fP gpϊsƂ\ƂȂ܂B
.AE
.SH
͂߂
.RS
.IP E
\fBsj3lib\fP ł́A֐ϐ sj3_ Ŏn܂閼OgpĂ܂̂ŁA
sj3_ Ŏn܂֐Aϐ̎gp͂B
.IP E
\fBsj3lib\fP ň́AׂăVtgJISłB
.IP E
CA[UAwKt@ĆAڑT[o̓삵Ă}V̂̂gp܂B
.br
̃t@ĆAftHgł̓fBNg \fB/usr/sony/dict/sj3\fP ̉ɂ܂AT[õZbgAbvt@CɂύX\łB
.IP E
[UƊwKt@ĆA֐ sj3_open Ŏw肳ꂽ[U USER 
΁A\fBuser/USER/private.dic\fP  \fBuser/USER/study.dat\fP łB
.RE
.NH
T[o̎gpJn
.RS
.LP
.DS
sj3_open(hname, uname)
char	*hname;		/* zXgւ̃|C^ */
char	*uname;		/* [Uւ̃|C^ */
.DE
.sp
ւ̃|C^ \fBhname\fP Ŏw肳ꂽzXg̃T[o \fIsj3serv\fP 
΂A[UƂă|C^ \fBuname\fP Ŏw肳镶gpA
ڑ݂܂B
.sp
ڑɂ́AzXgւ̃|C^ \fBhname\fP i|C^A邢́A
̕܂͕ unix ւ̃|C^̎ɂ AF_UNIX \PbgA
ȊÔƂɂ AF_INET \Pbggp܂B
.sp
ڑłƂɂ́AT[o̗グɎw肳ꂽfBNgɂ
C sj3main.dicA[U user/\fBuname\fP/private.dicA
wKt@C user/\fBuname\fP/study.dat I[v܂B
.br
w肳ꂽ[Up̃fBNgA[UAwKt@C
݂ȂƂɂ́A݂̐܂B
.sp
̊֐́AȊϊ[`gpȑOɕKĂ΂Ȃ΂Ȃ܂B
.sp
T[oƐɐڑłƂɂ 0 AG[̂Ƃɂ 0 ȊO
G[Xe[^XԂ܂B
.sp
G[Xe[^X̓wb_t@C \fB/usr/sony/include/sj3lib.h\fP 
`rbgATCꂽlŁAڍׂ͈ȉ̂ƂłB
.sp
.IP "\fBSJ3_SERVER_DEAD\fP
ڑɃT[o_E܂B
.IP "\fBSJ3_CONNECT_ERROR\fP
T[oȂA邢͐ڑł܂B
.IP "\fBSJ3_ALREADY_CONNECTED\fP
łɃT[oƐڑςłB
.IP "\fBSJ3_CANNOT_OPEN_MDICT\fP
CI[vł܂B
.IP "\fBSJ3_CANNOT_OPEN_UDICT\fP
[UI[vł܂B
.IP "\fBSJ3_CANNOT_OPEN_STUDY\fP
wKt@CI[vł܂B
.IP "\fBSJ3_CANNOT_MAKE_UDIR\fP
lt@Ĉ߂̃fBNg쐬ł܂B
.IP "\fBSJ3_CANNOT_MAKE_UDICT\fP
[U쐬ł܂B
.IP "\fBSJ3_CANNOT_MAKE_STUDY\fP
wKt@C쐬ł܂B
.RE
.sp
G[Xe[^Xɂ́ÂȂƂ 1 rbgĂ܂B
.br
G[Xe[^X̂ \fBSJ3_SERVER_DEAD\fP 邢 \fBSJ3_CONNECT_ERROR\fP 
ԂꂽƂȊÓAT[oƂ̐ڑmĂ܂B
.RE

.NH
T[o̎gpI
.RS
.LP
.DS
sj3_close()
.DE
.sp
\fIsj3_open\fP ɂĊmꂽT[oƂ̐ڑ؂܂B
.br
CA[UAwKt@ĈׂĂI[vĂ̂ƂāA
̃N[Y݂܂B
.sp
̊֐́AȊϊ[`̎gpIƂɌĂ΂Ȃ΂Ȃ܂B
.sp
T[oƂ̎gp𐳏ɏIłƂɂ 0 A
G[̂Ƃɂ 0 ȊÕG[Xe[^XԂ܂B
.sp
G[Xe[^X̓wb_t@C \fB/usr/sony/include/sj3lib.h\fP 
`rbgATCꂽlŁAڍׂ͈ȉ̂ƂłB
.sp
.IP "\fBSJ3_SERVER_DEAD\fP
؂ɃT[o_E܂B
.IP "\fBSJ3_DISCONNECT_ERROR\fP
T[oœG[܂B
.IP "\fBSJ3_NOT_CONNECTED\fP
T[oƐڑĂ܂B
.IP "\fBSJ3_NOT_OPENED_MDICT\fP
CI[vĂ܂B
.IP "\fBSJ3_NOT_OPENED_UDICT\fP
[UI[vĂ܂B
.IP "\fBSJ3_NOT_OPENED_STUDY\fP
wKt@CI[vĂ܂B
.IP "\fBSJ3_CLOSE_MDICT_ERROR\fP
CN[Ył܂B
.IP "\fBSJ3_CLOSE_UDICT_ERROR\fP
[UN[Ył܂B
.IP "\fBSJ3_CLOSE_STUDY_ERROR\fP
wKt@CN[Ył܂B
.RE
.sp
G[Xe[^Xɂ́ÂȂƂ 1 rbgĂ܂B
.br
ǂ̃G[Xe[^XԂĂAT[oƂ̐ڑ͐؂Ă܂B
.RE

.NH
͈ꊇϊ
.RS
.LP
.DS
sj3_getkan(yomi, bun, knjbuf, knjsiz)
unsigned char	*yomi;		/* ǂݕւ̃|C^ */
struct bunsetu	bun[];		/* ߍ\̂ւ̃|C^ */
unsigned char	*knjbuf;	/* i[̈ւ̃|C^ */
int		knjsiz;		/* i[̈̑傫 */
.DE
.sp
^ꂽǂ݂𕶏͈ꊇϊǍʂԂ܂B
.br
|C^ \fByomi\fP Ŏw肳ꂽǂݕȊϊA
|C^ \fBknjbuf\fP Ŏ傫 \fBknjsiz\fP ̗̈
ϊʂ̊Az \fBstruct bunsetu bun[]\fP 
e߂ɊւZbg܂B
.br
\fBstruct bunsetu\fP ̓wb_t@C \fB/usr/sony/include/sj3lib.h\fP 
錾Ăȉ̂悤ȍ\̂łB
.sp
.RS
.DS
struct bunsetu {
    int             srclen;         /* ǂ݂̒         */
    int             destlen;        /* ̒         */
    unsigned char   *srcstr;        /* ǂ݂ւ̃|C^   */
    unsigned char   *deststr;       /* ւ̃|C^   */
    struct studyrec dcid;           /* wK̂߂̃f[^ */
};
.DE
.RE
.sp
ǂ݂ɕϊłƂɂ́A̗vf͂Ɛݒ肳܂A
|C^ \fBknjbuf\fP Ŏ̈̑傫 \fBbufsiz\fP Ȃǂ
ŊԂȂ߂Ƃɂ́A̓ǂݕւ
|C^ \fBsrcstr\fP ɁA܂̒ \fBsrclen\fP ɎA
\fBdestlen\fP  0  \fBdeststr\fP i|C^̍\̂܂B
.sp
ǂ݂Ƃė^镶́A
Vtg JIS  2 oCgR[hō\Ă邱ƂłA
1 oCgR[hĂĂ܂܂B
̍ۂɂ́A1 oCgR[h͊ɕϊ邱Ƃ͂܂B
.br
ǂݕ̓iŏIĂȂ΂Ȃ炸A
őł 256 zĂ͂Ȃ܂B
.br
z \fBstruct bunsetu bun[]\fP ̎̂́A[UvO
Ȃ΂Ȃ܂B
̑傫͍őœǂݕKvƂȂ܂B
.br
ϊɕKvƂ|C^ \fBknjbuf\fP Ŏ̈̑傫́A
ϊ镶o^ĂP̒Ȃǂɂ
ω܂BŒł 1024 oCgx͂قǂł傤B
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
ǂ݂i񂾂A邢͓ǂ݂Ƃɂ 0 Ԃ܂B
.br
IƂɂ́Az \fBstruct sj3bunsetu bun[]\fP ɃZbgꂽ
ߐԂ܂B
.RE

.NH
Ӌ`ꐔ̎擾
.RS
.LP
.DS
sj3_douoncnt(yomi)
unsigned char	*yomi;		/* ǂݕւ̃|C^ */
.DE
.sp
^ꂽǂ݂𕶐ߕϊA^[lƂēӋ`ꐔԂ܂B
.sp
|C^ \fByomi\fP ɂēǂ݂Ƃė^镶́A
Vtg JIS  2 oCgR[hō\Ă邱ƂłA
1 oCgR[hĂĂ܂܂B
̍ۂɂ́A1 oCgR[h͊ɕϊ邱Ƃ͂܂B
.br
ǂݕ̓iŏIĂȂ΂Ȃ炸A
őł 64 zĂ͂Ȃ܂B
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
ǂ݂i񂾂A邢͓ǂ݂A܂͗^ꂽ
ǂ݂ 1 ߂\ȂƂɂ 0 Ԃ܂B
.br
IƂɂ͓ꐔԂ܂B
.RE

.NH
Ӌ`̎擾
.RS
.LP
.DS
sj3_getdouon(yomi, dou)
unsigned char	*yomi;		/* ǂݕւ̃|C^ */
struct douon	*dou;		/* Ӌ`\̂ւ̃|C^ */
.DE
.sp
^ꂽǂ݂𕶐ߕϊAӋ`^ꂽ\̂ɃZbg
ƂƂɁA^[lƂēӋ`ꐔԂ܂B
.sp
|C^ \fByomi\fP ɂēǂ݂Ƃė^镶́A
Vtg JIS  2 oCgR[hō\Ă邱ƂłA
1 oCgR[hĂĂ܂܂B
̍ۂɂ́A1 oCgR[h͊ɕϊ邱Ƃ͂܂B
.br
ǂݕ̓iŏIĂȂ΂Ȃ炸A
őł 64 zĂ͂Ȃ܂B
.sp
z \fBstruct douon dou[]\fP ɂ͓Ӌ`Ɋւ񂪃Zbg܂B
\ \fBstruct douon\fP  \fBsj3lib.h\fP Ő錾Ă
ȉ̂悤ȍ\̂łB
.sp
.RS
.DS
struct douon {
    unsigned char   ddata[256];	/* Ӌ`̃f[^ */
    int             dlen;		/* Ӌ`̒   */
    struct studyrec dcid;		/* wK̂߂̃f[^ */
};
.DE
.RE
.sp
z \fBstruct douon dou[]\fP ̎̂̓[UvO
Ȃ΂Ȃ܂B
.sp
\ \fBstruct douon\fP  \fBddata\fP ́AiŏI镶łB
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
ǂ݂i񂾂A邢͓ǂ݂A܂͗^ꂽ
ǂ݂ 1 ߂\ȂƂɂ 0 Ԃ܂B
.br
IƂɂ́Az \fBstruct douon dou[]\fP 
ZbgꂽꐔԂ܂B
.RE

.NH
ߊwK
.RS
.LP
.DS
sj_gakusyuu(dcid)
struct studyrec	*dcid;		/* wKf[^ւ̃|C^ */
.DE
.sp
wKf[^ւ̃|C^ \fBdcid\fP ̎A
\fIsj3_getkan\fP  \fIsj_getdouon\fP ɂ蓾ꂽwKf[^
gpāAߊwKs܂B
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
ɊwKłƂɂ 0 AwKłȂƂɂ͂ȊO̒l
Ԃ܂B
.RE

.NH
ߒwK
.RS
.LP
.DS
sj_gakusyuu2(yomi1, yomi2, dcid)
unsigned char	*yomi1;		/* P߂̓ǂݕւ̃|C^ */
unsigned char	*yomi2;		/* Q߂̓ǂݕւ̃|C^ */
struct studyrec	*dcid;		/* Q߂̊wKf[^ւ̃|C^ */
.DE
.sp
ߒwKs܂B
.sp
P߂Ƃĕϊꂽ񂪂Q߂ɕꂽ悤ȏꍇA
邢͂Q߂̊Ԃł̋EύXꂽ悤ȂƂɂ́A
\fByomi1\fP ɐVȑP߂̓ǂ݂ւ̃|C^A
\fByomi2\fP ɐVȑQ߂̓ǂ݂ւ̃|C^A
\fBdcid\fP ɐVȑQ߂̊wKf[^^邱ƂɂA
ߒwKs܂B
.sp
Q߂Ƃĕϊꂽ񂪂P߂ɂȂꍇɂ́A
\fByomi1\fP ɐVɂłP߂̓ǂ݂ւ̃|C^A
\fByomi2\fP ɂ̓i|C^܂̓iւ̃|C^^邱ƂɂA
ߒwKs܂B̂ƂA\fBdcid\fP ɂ͐ݒ肷ׂf[^
ɂ܂B
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
ɊwKłƂɂ 0 AwKłȂƂɂ͂ȊO̒l
Ԃ܂B
.RE

.NH
Po^
.RS
.LP
.DS
sj3_touroku(yomi, kanji, hinsi)
unsigned char	*yomi;		/* ǂݕւ̃|C^ */
unsigned char	*kanji;		/* ւ̃|C^ */
int	hinsi;			/* iR[h             */
.DE
.sp
ǂݕւ̃|C^ \fByomi\fPA
ւ̃|C^ \fBkanji\fPA
iR[h \fBhinsi\fP Ŏw肳ꂽ[Uɓo^܂B
.sp
ǂ݂͈ȉ̃Vtg JIS R[hō\A
iŏIĂȂ΂Ȃ܂B
܂̒́Aőł 31 zĂ͂Ȃ܂B
.sp
.RS
.DS
[
OPQRS TUVWX
`abcd efghi jklmn opqrs tuvwx y
     
   Ă Ȃɂʂ˂
͂Ђӂւ ܂݂ނ߂ @@  @ 
  Âł ΂тԂׂ ς҂Ղ؂
 @@@@ @@ 

.DE
.RE
.sp
ȉ͓̕ǂ݂̐擪ɂȂ邱Ƃo܂B
.sp
.RS
.DS
[      
.DE
.RE
.sp
̓Vtg JIS R[hō\AiŏIĂȂ΂Ȃ܂B
܂̒́Aőł 32 zĂ͂Ȃ܂B
.sp
iR[h̓wb_t@C \fB/usr/sony/include/sj3lib.h\fP 
`ȉ̕î̈łB
.sp
.RS
.DS
SJ3_H_NRMNOUN   ʖ        SJ3_H_ADJVERB   `e
SJ3_H_PRONOUN   㖼          SJ3_H_SILVERB   Tϓ
SJ3_H_LNAME     c            SJ3_H_ZILVERB   Uϓ
SJ3_H_FNAME     O            SJ3_H_ONEVERB   i
SJ3_H_LOCNAME   n            SJ3_H_KAVERB    Jsܒi
SJ3_H_PREFIC    ^於        SJ3_H_GAVERB    Ksܒi
SJ3_H_RENTAI    A̎          SJ3_H_SAVERB    Tsܒi
SJ3_H_CONJUNC   ڑ          SJ3_H_TAVERB    ^sܒi
SJ3_H_SUBNUM              SJ3_H_NAVERB    isܒi
SJ3_H_NUMERAL               SJ3_H_BAVERB    osܒi
SJ3_H_PREFIX    ړ          SJ3_H_MAVERB    }sܒi
SJ3_H_POSTFIX   ڔ          SJ3_H_RAVERB    sܒi
SJ3_H_ADVERB                SJ3_H_WAVERB    sܒi
SJ3_H_ADJECT    `e          SJ3_H_SINGLE    P
.DE
.RE
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
o^łƂɂ 0 Ao^łȂƂɂ͂ȊO
G[Xe[^XԂ܂B
.sp
G[Xe[^X̓wb_t@C \fB/usr/sony/include/sj3lib.h\fP 
`Aڍׂ͈ȉ̂ƂłB
.sp
.IP "\fBSJ3_DICT_ERROR\fP
݂ȂA邢͓o^łȂłB
.IP "\fBSJ3_DICT_LOCKED\fP
ǂݏô߂ɃbNĂ܂B
.IP "\fBSJ3_BAD_YOMI_STR\fP
ǂݕ񂪕słB
.IP "\fBSJ3_BAD_KANJI_STR\fP
񂪕słB
.IP "\fBSJ3_BAD_HINSI_CODE\fP
iR[hsłB
.IP "\fBSJ3_WORD_EXIST\fP
łɓo^ςłB
.IP "\fBSJ3_DOUON_FULL\fP
ȏ㓯o^ł܂B
.IP "\fBSJ3_DICT_FULL\fP
ȏ㎫ɓo^ł܂B
.IP "\fBSJ3_INDEX_FULL\fP
ȏCfbNXɓo^ł܂B
.IP "\fBSJ3_TOUROKU_FAILED\fP
̌Ŏւ̓o^s܂B
.RE
.RE

.NH
P폜
.RS
.LP
.DS
sj3_syoukyo(yomi, kanji, hinsi)
unsigned char	*yomi;		/* ǂݕւ̃|C^ */
unsigned char	*kanji;		/* ւ̃|C^ */
int	hinsi;			/* iR[h */
.DE
.sp
[Uɓo^Ă
ǂݕւ̃|C^ \fByomi\fPA
ւ̃|C^ \fBkanji\fPA
iR[h \fBhinsi\fP Ŏw肳ꂽ܂B
.sp
ǂ݂͈ȉ̃Vtg JIS R[hō\A
iŏIĂȂ΂Ȃ܂B
܂̒́Aőł 31 zĂ͂Ȃ܂B
.sp
.RS
.DS
[
OPQRS TUVWX
`abcd efghi jklmn opqrs tuvwx y
     
   Ă Ȃɂʂ˂
͂Ђӂւ ܂݂ނ߂ @@  @ 
  Âł ΂тԂׂ ς҂Ղ؂
 @@@@ @@ 

.DE
.RE
.sp
ȉ͓̕ǂ݂̐擪ɂȂ邱Ƃo܂B
.sp
.RS
.DS
[      
.DE
.RE
.sp
̓Vtg JIS R[hō\AiŏIĂȂ΂Ȃ܂B
܂̒́Aőł 32 zĂ͂Ȃ܂B
.sp
iR[h \fB/usr/sony/include/sj3lib.h\fP Œ`ȉ̕i
̈łB
.sp
.RS
.DS
SJ3_H_NRMNOUN   ʖ        SJ3_H_ADJVERB   `e
SJ3_H_PRONOUN   㖼          SJ3_H_SILVERB   Tϓ
SJ3_H_LNAME     c            SJ3_H_ZILVERB   Uϓ
SJ3_H_FNAME     O            SJ3_H_ONEVERB   i
SJ3_H_LOCNAME   n            SJ3_H_KAVERB    Jsܒi
SJ3_H_PREFIC    ^於        SJ3_H_GAVERB    Ksܒi
SJ3_H_RENTAI    A̎          SJ3_H_SAVERB    Tsܒi
SJ3_H_CONJUNC   ڑ          SJ3_H_TAVERB    ^sܒi
SJ3_H_SUBNUM              SJ3_H_NAVERB    isܒi
SJ3_H_NUMERAL               SJ3_H_BAVERB    osܒi
SJ3_H_PREFIX    ړ          SJ3_H_MAVERB    }sܒi
SJ3_H_POSTFIX   ڔ          SJ3_H_RAVERB    sܒi
SJ3_H_ADVERB                SJ3_H_WAVERB    sܒi
SJ3_H_ADJECT    `e          SJ3_H_SINGLE    P
.DE
.RE
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
폜łƂɂ 0 A폜łȂƂɂ͂ȊO
G[Xe[^XԂ܂B
.sp
G[Xe[^X \fB/usr/sony/include/sj3lib.h\fP Œ`A
ڍׂ͈ȉ̂ƂłB
.sp
.IP "\fBSJ3_DICT_ERROR\fP
݂ȂA邢͓o^łȂłB
.IP "\fBSJ3_DICT_LOCKED\fP
ǂݏô߂ɃbNĂ܂B
.IP "\fBSJ3_BAD_YOMI_STR\fP
ǂݕ񂪕słB
.IP "\fBSJ3_BAD_KANJI_STR\fP
񂪕słB
.IP "\fBSJ3_BAD_HINSI_CODE\fP
iR[hsłB
.IP "\fBSJ3_WORD_NOT_EXIST\fP
w肳ꂽ͓o^Ă܂B
.IP "\fBSJ3_SYOUKYO_FAILED\fP
̌Ŏ̏s܂B
.RE
.RE

.NH
̃bN
.RS
.LP
.DS
sj3_lockserv()
.DE
.sp
݃I[vĂ鎫ɒPo^^폜łȂ悤ɃbN܂B
.sp
wKhc͒P̎ł̈ʒuĂ܂B̂߁ANCAg
wKhcێĂԂɎo^^폜sƁANCAg
ێĂwKhcƎ̊ԂŕsN\܂B
邽߂ɁANCAgwKhcێĂԂ͎t@C
bNKv܂B
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
bNłƂɂ 0 A
bNłȂƂɂ͂ȊO̒lԂ܂B
.RE

.NH
̃AbN
.RS
.LP
.DS
sj3_unlockserv()
.DE
.sp
sj3_lockserv ֐ŃbNĂ鎫ɒPo^^폜ł悤
AbN܂B
.sp
wKhc͒P̎ł̈ʒuĂ܂B̂߁ANCAg
wKhcێĂԂɎo^^폜sƁANCAg
ێĂwKhcƎ̊ԂŕsN\܂B
邽߂ɁANCAgwKhcێĂԂ͎t@C
bNKv܂B
.br
NCAgbNĂԂ́Ao^^폜邱Ƃł܂B
NCAg͊wKhcێKvȂȂƂɂ́AɎ
AbNׂłB
.sp
T[oƐڑĂȂƂA邢̓T[o_EƂɂ \-1 
Ԃ܂B
.br
AbNłƂɂ 0 A
AbNłȂƂɂ͂ȊO̒lԂ܂B
.RE
