[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pipe buffering

From: Aidan Gauland
Subject: pipe buffering
Date: Wed, 22 Sep 2010 01:28:26 +0000 (UTC)
User-agent: Loom/3.14 (

I'm trying to write a program using Guile's expect module to
automatically log into a telnet server, perform some action, and log

This is the start of my program...

#! /usr/bin/guile -s

(use-modules (ice-9 expect))
(use-modules (ice-9 popen))

(define ie-io (open-pipe* OPEN_BOTH
                          "" "259"))

Then I have a sexp for debugging, which shows that `expect' is getting
one character at a time from the telnet subprocess, since it only
prints out "Tmatch", instead of "Trying [IP address]..."

(let ((expect-port ie-io))
   ((lambda (s eof?) (display s))
    (display "match"))))

I tried (setvbuf ie-io _IOLBF), but that produces the following error.

In current input:
  18: 0* [setvbuf {#<input-output: soft 807be60>} 1]

<unnamed port>:18:1: In procedure setvbuf in expression (setvbuf ie-io _IOLBF):
<unnamed port>:18:1: Wrong type argument in position 1 (expecting open file
port): #<input-output: soft 807be60>
ABORT: (wrong-type-arg)

Can anyone offer any advice on how to get expect to see entire lines?


P.S. is on the inside only of my
university's network, but this is what the output looks like up to the
first prompt...

Trying [IP address]...
Connected to
Escape character is '^]'.
Check Point FireWall-1 Client Authentication Server running on cpgate1

reply via email to

[Prev in Thread] Current Thread [Next in Thread]