Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

togeomview(1gv) [debian man page]

TOGEOMVIEW(1gv) 														   TOGEOMVIEW(1gv)

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 run- ning, 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), oogl(5) Geometry Center 21 May 1993 TOGEOMVIEW(1gv)

Check Out this Related Man Page

pipe(2) 							System Calls Manual							   pipe(2)

Name
       pipe - create an interprocess channel

Syntax
       include <limits.h> /*Definition of PIPE_MAX*/
       pipe(fildes)
       int fildes[2];

Arguments
       fildes	 Passing an address as an array of two integers into the system call.

Description
       The system call creates an I/O mechanism called a pipe.	The file descriptors returned can be used in and operations.  Their integer values
       will be the two lowest available at the time of the function call.  The O_NONBLOCK and FD_CLOEXEC flags will be clear on both file descrip-
       tors.

       When the pipe is written using the descriptor fildes[1], up to PIPE_MAX bytes of data are buffered before the writing process is suspended.
       A read using the descriptor fildes[0] picks up the data.

       It is assumed that after the pipe has been set up, two (or more) cooperating processes (created by subsequent calls) pass data through  the
       pipe with and calls.

       The shell has a syntax to set up a linear array of processes connected by pipes.

       For further information on how and calls behave with pipes, see the and reference pages.

       A signal is generated if a write on a pipe with only one end is attempted.

Restrictions
       Should more than 4096 bytes be necessary in any pipe among a loop of processes, deadlock may occur.

       The  underlying	implementation	of  pipes is no longer socket based, but rather implemented through the file system.  Any application that
       needs socket functionality from pipes should use the system call.

Return Values
       The function value zero is returned if the pipe was created; -1 if an error occurred.

Diagnostics
       The call fails if:

       [EMFILE]       Too many descriptors are active.

       [ENFILE]       The system file table is full.

       [EFAULT]       The fildes buffer is in an invalid area of the process's address space.

Environment
       Differs from the System V definition in that ENFILE is not a possible error condition.

See Also
       sh(1), fork(2), read(2), socketpair(2), write(2)

																	   pipe(2)
Man Page