go to www.geomview.org home page
 
Home

Overview
FAQ
Documentation

Download

Mailing List

Geomview For Windows?

Support
Users
Development

Bug Reporting
Contributing
Contact Us

Sponsors

 

Site Search

 

Advanced
Search

 
About the software@geom archive

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

Re: [Closed REQ 6136]: Connecting Geomview with another X-application


  • To: software@geom.umn.edu
  • Subject: Re: [Closed REQ 6136]: Connecting Geomview with another X-application
  • From: daemon
  • Date: Tue, 18 Mar 1997 11:13:54 -0600 (CST)

FIFOs are one-directional: if you're writing to geomview through a
FIFO, you can't get data back through the same FIFO.

But, you can do this using *two* FIFOs and geomview's "command" GCL command.

#include <sys/types.h>
#include <sys/stat.h>

  FILE *togv, *fromgv;

  /* Ensure (more or less) that no one else is using these FIFOs */
  unlink("/tmp/togv");
  unlink("/tmp/fromgv");
  mknod("/tmp/togv", S_IFIFO|0777, 0);
  mknod("/tmp/fromgv", S_IFIFO|0777, 0);

  /* Invoke geomview.  Use the "command" command, which takes a pair of
   * file names; the first feeds commands to geomview, and the second
   * receives responses from geomview.  Note that the FIFOs mentioned here
   * must exist before we start geomview.
   */
  system("geomview -c '(command /tmp/togv /tmp/fromgv)' ... any other args ... &");

  /* UNIX FIFO semantics imply that this will block until geomview starts.
   * If you don't entirely trust it to work, you might use
   * open( "/tmp/togv", O_WRONLY|O_NONBLOCK ) and a polling loop
   * that waited a few seconds for geomview to start, gave up if it didn't,
   * and otherwise used fdopen() to get a FILE pointer.
   * But this should work if all's well.
   */
  togv = fopen("/tmp/togv", "w");

  fromgv = fopen("/tmp/fromgv", "r");

  fprintf(togv, "(interest (pick world))\n");
  fflush(togv);

  /* Now listen on fromgv, etc. */


Hope this makes sense.

  Stuart Levy, Geometry Center


 
Home | Overview | FAQ | Documentation | Support | Download | Mailing List
Windows? | Development | Bug Reporting | Contributing | Contact Us | Sponsors
 
site hosted by
SourceForge Logo