Go to the first, previous, next, last section, table of contents.

プロセスフィルター

プロセスフィルターは、(対応する)プロセスからの標準出力を受け取る関数のことで す。プロセスがフィルターを持つ場合、そのプロセスからの標準出力は全て、(バッ ファに挿入されたり、捨てられたりすることなく) そのフィルターに送られます。

フィルター関数は、(対応するプロセスとその出力であるストリングの) 2 つのアー ギュメントを受け取らなくてはいけません。この関数は(その後)その出力で何をしよう とかまいません。

この(訳注:フィルター)関数への出力はどのような大きさのかたまりであってもかまい ません。 2回同じものを繰返し出力する unix コマンドは、最初は 200 文字の 1つの ストリングを、2 回目は 40 文字の 5 つのストリングを送ってかまいません。

Function: set-process-filter process filter

この関数は、フィルター関数 filter をプロセス process に与えます。 filter が nil の場合、そのプロセスはフィルターを持たないことになります。

(もっと良い例が必要!!)

  (defun keep-output (process output)
     (setq kept (cons output kept)))
  => keep-output
  (setq kept nil)
  => nil
  (set-process-filter (get-process "shell") 'keep-output)
  => keep-output
  (process-send-string "shell" "ls ~/other\n")
  => nil
  kept
  => ("lewis@slug[8] % "
  "FINAL-W87-SHORT.MSS    backup.otl              kolstad.mss~
  address.txt             backup.psf              kolstad.psf
  backup.bib~             david.mss               resume-Dec-86.mss~
  backup.err              dabid.psf               resume-Dec.psf
  backup.mss              dland                   syllabus.mss
  "
  "#backupsmss#           backup.mss~             kolstad.mss
  ")

Function: process-filter process

この関数は、 process のフィルター関数か (フィルター関数を持たない場合) nil を返します。


Go to the first, previous, next, last section, table of contents.