---
name: "togeomview"
section: "1"
platform: "linux"
package: "geomview"
version: "1.8.1-14"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/togeomview"
---

# togeomview(1)

send commands or OOGL objects to geomview

## NAME

togeomview - send commands or OOGL objects to geomview

## SYNOPSIS

**togeomview** \[**-c**\] \[**-g**\]  \[*pipename*  \[*program args ...*\]\]

## DESCRIPTION

**togeomview** sends a stream of geomview commands, or OOGL-format geometric data, to a cooperating copy of geomview.  If geomview is not running, it is automatically started.  ('geomview' must be on the $PATH of the user running 'togeomview' in order for this to work.)

Typical usage is:

```
someprogram | togeomview    (to send commands) or
someprogram-generating-OOGL-data | togeomview -g  (to send geometry)
```

i.e. a program pipes geometric data into \`\`**togeomview**''; the data is displayed by a copy of geomview run with the **-M** option and a name matching the one given to **togeomview**.

**Togeomview** uses a named pipe in the directory **/tmp/geomview** to communicate with geomview. If unspecified, the pipe's default name is "OOGL". When sending geometry (**-g**), a geomview object with the same name as the pipe appears in geomview's object browser.

By default, when no suitable copy of geomview is running, **togeomview** invokes "geomview" with arguments specifying the appropriate named pipe.  A different command may be specified as in:

togeomview  OOGL  gv -wpos 300x300 -c *my\_startup\_script*

which communicates through a pipe named OOGL, and (if necessary) invokes the given gv command.  The pipe name is *required* if a command is specified.

After togeomview has created it, the named pipe may be written as an ordinary file. For example, one could use

**togeomview** *pipename* \< /dev/null

to invoke a listening copy of geomview, and then run a program which simply wrote to /tmp/geomview/*pipename*.

## FILES

/tmp/geomview

## BUGS

The pipe-based communications scheme imposes several restrictions.

If no copy of **geomview** is reading from the pipe, or if geomview gets far enough behind, a program writing data to \`\`**togeomview**'' will be forced to block after sending a few kilobytes.

Because of the buffering in the pipe, the sender may be substantially ahead of the geomview display.

If geomview exits, the sending program receives a write-on-broken-pipe (**SIGPIPE**) signal, which will kill it unless measures are taken to catch or ignore that signal.

Only one copy of geomview can read from a given pipe at a time.  If a second copy attempts to read from it, both will probably fail.  It's fine to have multiple copies of geomview reading from different pipes.

Note that **togeomview** will invoke geomview if no extant copy is listening to the relevant pipe; it can't connect to an existing copy of geomview started by other means.

## SEE ALSO

[geomview(1)](/geomview/1.md), oogl(5)
