                            IPC in W32TeX

Cg_NV

TeX ɂ IPC (InterProcess Communication) ́ANeXT  TeXView p
T. Rokicki ɂĎꂽ̂ŁAShamim Mohamed  Web2C ɓKp
̂łBRg[ƋɁADVI gt@CɏoƓ
ɁATeXView ɂACN^ɕ\ł悤ɂȂĂ悤
łB NeXT pȂ̂ŁAقƂ IPC g悤 Make 邱Ƃ͂
܂BADVI t@Coobt@OȂȂ̂ŁA
pAvP[V̂߂ IPC enabled Ƃ Make 邱Ƃ
܂BT[o (TeXView) ΒP DVI t@Cobt@Oꂸ
oƂʂɂȂ܂Bʏgpł́Aobt@OȂ
oꍇA(̊łقǂł͂Ȃł傤)኱ptH[}X
ȂƎv܂B


W32TeX ɂ IPC

W32TeX  IPC enabled Ƃ Make Ă܂B]ăIvV
-ipc  -ipc-start gp邱Ƃł܂BT[o̖O texview.exe
ɌŒ肳ĂĕύX͂ł܂B texview.exe ΁AP DVI 
obt@Oŏo悤ɂȂ邾łBtexview.exe ݂
ʐMłꍇARg[𑗂邾ŁADVI g͑܂B
ʐM TCP/IP ŃAhX̓[JzXg (127.0.0.1) ɌŒ肵Ă܂B
gp|[g 4242 ɌŒ肵Ă܂BRg[

struct msg {
int    namelength;
int    eof;
char   fname[256];
}

̌`ĂAeof ͊ɏoꂽ DVI t@C̃oCgɋ߂
łB namelength [łȂꍇɂ́Afname  DVI t@C
tpXĂA̒̕ namelength łB
C ł͂Ȃ̂ŁA̒オ '\0' ɂȂĂۏ؂͂Ȃ̂
ӂĉB݂̕fBNgɁA܂ɂȂ
Tv texview.c ܂Bꂩ쐬 texview.exe eXg
pƂăCXg[܂B dviout  DVI t@CŌ܂ŏ
ĂȂiKŁAr܂œǂ܂Ă߂Ȃ̂ŁATv texview.exe
 Rg[̃t@CgpāADVI t@Cׂď
oꂽɂ dviout オĂȂAI dviout
𗧂グĊ DVI J܂B dviout オĂ
ɂ́A dviout gp DVI J܂B܂Qlɂ͂Ȃ܂
񂪁Aڍׂ texview.c QƂĉB

texview.exe ̎g:
  ʏ͉ӎ邱ƂȂAdviout Ńvr[ƎvƂ
  platex -ipc-start ...
  ƂƁARpCI_ŎI dviout 𗧂グ
  vr[邱Ƃł܂B̏ꍇAtexview ŏI܂B
  ܂ -ipc-start ̂Ƃ́Atexview  --stay IvVŎs
  ܂B
  platex -ipc ...
  ƂƁAʏDVIoobt@OȂŁAς܂
  񂪁A-ipc-start ̂ƂƓ悤ɁARpCIɎI dviout
  𗧂グɂ́A
  start texview --stay
  ƂāAʂ̃R}hvvgEChE texview.exe 𑖂点Ă܂B
  --stay IvVŎsĂƁAI܂񂩂Ał
  platex -ipc ...
  œʂ܂B texview.exe svɂȂƂ́Atexview 
  ĂR}hvvgEChE Control C ͂ texview
  I܂B

(1) IvV -ipc ̏ꍇ
 texview.exe sĂꍇAconnection ɐ
DVI t@CȂARg[ texview.exe ɑ܂B
connection ɎsAtexview.exe sĂȂꍇɂ́ADVI
t@Coobt@OȂŁAʏƓłB

(2) IvV -ipc-start ̏ꍇ
texview.exe 𗧂グĒʐM悤Ǝ݂܂B DVI t@C
ȂARg[ texview.exe ɑ܂B
texview.exe ̗グʐMɎsꍇ́ADVI t@C̏o
obt@OȂŁAʏƓłB
TvƂēĂ texview.exe gꍇÂ悤Ȏg
l܂:
platex test
platex test
platex -ipc-start test
̏ꍇA2 ͒ʏ̂悤 platex sA3 ڂ̓RpC
邱Ƃ\zāAI dviout Ńvr[悤AƂӐ}
Ă邱ƂɂȂ܂B dviout.exe  texview.exe  PATH 
ȂƁA-ipc-start IvV̌ʂ͖Ȃ܂B

----------------------------------------------
A. Kakuto
