Hank Stevens wrote:

> Running Mac OS 10.3.5, LyX 1.3.4, JabRef 1.4 (or 1.5?)
> 
> What is my .lyx/lyxpipe? I could not find anything in
> When I try to insert a reference directly from JabRef, JabRef gives me
> an error mesage saying,
> "Error: verify the LyX is running and the the lyxpipe is valid.
> [/Users/Hank/.lyx/lyxpipe]"
> I went into LyX preferences and change my LyXServer path from
> /Users/Hank/.lyx/.lyxpipe to /Users/Hank/.lyx/lyxpipe, but this had no
> effect even after restarting JabRef. I have not contacted the JabRef
> folks because I don't understand what the lyxpipe or .lyx are.

/Users/Hank/.lyx is a directory containing your customisations of the
system wide settings. LyX will interrogate the contents of the system wide
directory (/usr/local/share/lyx on 'traditional' unix boxes. Somewhere
different on the Mac). Thereafter it will override (some of) these
settings using the contents of the /Users/Hank/.lyx directory tree.

/Users/Hank/.lyx/lyxpipe.in and /Users/Hank/.lyx/lyxpipe.out are the names
given to two FIFOs. A FIFO is a window into the kernel memory that 'looks'
like a file. Your app (JabRef) will write to lyxpipe.in and read from
lyxpipe.out. If you fire up lyx from the command line you may get some
messages displayed about problems creating these FIFOs. If not, then they
should be visible when you type 'ls /Users/Hank/.lyx'.

It may well be that things just don't work on the Mac. The API to
interrogate FIFOs is less than standard. The current code is known to work
under linux, f.ex, but not under Digital Unix.

Angus

$ man fifo
NAME
fifo - first-in first-out special file, named pipe

DESCRIPTION
A FIFO special file (a named pipe) is similar to a pipe, except 
that it is accessed as part of the file system. It can be opened
by multiple processes for reading or writing. When processes
are exchanging data via the FIFO, the kernel passes all data
internally without writing it to the file system. Thus, the
FIFO special file has no contents on the file system, the file
system entry merely serves as a reference point so that
processes can access the pipe using a name in the file system.

The kernel maintains exactly one pipe object for each FIFO
special file that is opened by at least one process.
The FIFO must be opened on both ends (reading and writing) before
data can be passed. Normally, opening the FIFO blocks until
the other end is opened also. 

A process can open a FIFO in non-blocking mode. In this
case, opening for read only will succeed even if noone has
opened on the write side yet; opening for write only will
fail with ENXIO (no such device or address) unless the other
end has already been opened.

Under Linux, opening a FIFO for read and write will succeed
both in blocking and non-blocking mode. POSIX leaves this
behaviour undefined. This can be used to open a FIFO for writing
while there are no readers available. A process that uses both
ends of the connection in order to communicate with itself
should be very careful to avoid deadlocks. 
-- 
Angus

Reply via email to