On Wed, Jan 28, 2009 at 02:58:43PM +0100, Matthias Teege wrote:
> > fstat(1) kann dir da weiterhelfen.
> 
> Also ich habe mal folgendes probiert:
> 
> mkfifo foo
> cat foo
> 
> und dann auf einem anderen Terminal
> 
> # fstat foo
> USER     CMD          PID   FD MOUNT      INUM MODE         SZ|DV R/W NAME
> 
> Mein Problem ist eigentlich, dass ich verhindern möchte, dass mehrere Leser
> an einer "named pipe" hängen.
Mmmm - fstat zeigt den erst an, nachdem es eine Verbindung gibt.
[144]cicely14# mkfifo foo
[145]cicely14# cat foo
[92]cicely14# fstat | grep cat
root     cat        62205 root /             2 drwxr-xr-x     512  r
root     cat        62205   wd /tmp          3 drwxrwxrwt     105  r
root     cat        62205 text /        241530 -r-xr-xr-x   11488  r
root     cat        62205    0 /dev        139 crw--w----   ttyp2 rw
root     cat        62205    1 /dev        139 crw--w----   ttyp2 rw
root     cat        62205    2 /dev        139 crw--w----   ttyp2 rw
[51]cicely14# cat /dev/zero > /tmp/foo 
[93]cicely14# fstat | grep cat
root     cat        62355 root /             2 drwxr-xr-x     512  r
root     cat        62355   wd /home        66 drwxr-xr-x    1661  r
root     cat        62355 text /        241530 -r-xr-xr-x   11488  r
root     cat        62355    0 /dev        184 crw--w----   ttypm rw
root     cat        62355    1 /tmp       5234 prw-r--r--       0  w
root     cat        62355    2 /dev        184 crw--w----   ttypm rw
root     cat        62355    3 /dev         18 crw-rw-rw-    zero  r
root     cat        62205 root /             2 drwxr-xr-x     512  r
root     cat        62205   wd /tmp          3 drwxrwxrwt     105  r
root     cat        62205 text /        241530 -r-xr-xr-x   11488  r
root     cat        62205    0 /dev        139 crw--w----   ttyp2 rw
root     cat        62205    1 /dev        139 crw--w----   ttyp2 rw
root     cat        62205    2 /dev        139 crw--w----   ttyp2 rw
root     cat        62205    3 /tmp       5234 prw-r--r--       0  r
Urgendwie habe ich mich wohl auch etwas vertan.
Die Dinger werden offensichtlich nicht über Domain Sockets abgewickelt.
Deshalb gibt es beim warten auch keinen Descriptor.
Der einzige Hinweis bleibt wohl der Prozessstatus:
    0 62411 33475   0   4  0  4672  1032 fifoor S+    p2    0:00.00 cat foo
Das Problem ist, dass der open(2) call wartet.
-- B.Walter <bernd@bwct.de> http://www.bwct.de Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm. To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Wed 28 Jan 2009 - 16:49:53 CET