if you want to be able to write to a named pipe before your reader is created you have to open the named pipe as read/write using an extra step e.g.

|---
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ mkfifo foo
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ exec 3<>./foo pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ date > ./foo &
[1] 2561
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ date
Mon  9 Jan 21:21:53 UTC 2017
[1]+  Done                    date > ./foo
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ cat ./foo
Mon  9 Jan 21:21:49 UTC 2017
^C
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ rm foo
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ mkfifo foo
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ date > ./foo &
[1] 2567
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ date
Mon  9 Jan 21:22:34 UTC 2017
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $ cat ./foo
Mon  9 Jan 21:22:43 UTC 2017
[1]+  Done                    date > ./foo
pi@glooston:~/GnuCOBOL/open-cobol-code/branches/gnu-cobol-2.0 $

----
|although that brings up another problem in that ^C needed to kill the reader unless you background the reader.

bst rgrds
Russell
||
On 1/9/2017 4:04 PM, Willard Goosey wrote:
So I tried a clever trick and it didn't work.

(This is NOT a bug report about any of the named programs, as it's a
weird edge case.)

So UNIX (and therefore Linux) has these things called "named
pipes". They're like files, except that they're strictly buffers --
you write something to one and it's only there until it's read.

galvatron:~$ mkfifo foo
galvatron:~$ date > foo &
[1] 395
galvatron:~$ date
Mon Jan  9 13:52:21 MST 2017
galvatron:~$ cat foo
Mon Jan  9 13:52:23 MST 2017
[1]+  Done                    date >foo
galvatron:~$

So, interestingly, note that the date written to the named pipe "foo"
wasn't written until it was read!

Just as an experiment, I created ~/root/DATE.DO as a named pipe and
redirected date(1) into it... Then tried to read it from tsdos via the
laddiealpha PDD server.

The result: M100 visits Cold Start City.

Not really surprising, something probably got confused by the fact
that the named pipe is reported as a 0-length file.

Would be an easy way to sync the M100's time to a laddiealpha server,
but it's not to be.

Willard

Reply via email to