[RFU][1.3.9-2] pv
Aaron Schneider
notstop2@users.sourceforge.net
Mon Dec 10 14:56:00 GMT 2012
Corinna Vinschen wrote:
> Again, Cygwin supports SYSV IPC. Please inform the original author that
> the functionality depends on a running cygserver process. If this
> process is not running, the SYSV IPC functions return ENOSYS.
>
> IMHO there's no reason to exit if the msgget function returns ENOSYS.
> The code could simply note the fact and proceed, and only return an
> error if the user tried the -R option.
>
> SYSV message queue support in Cygwin exists, but it requires to run
> cygserver. If you want to avoid this dependency, you can use POSIX
> message queues instead.
>
I think it should be possible to get -R working in Cygwin without
cygserver using temporary files to send the message. This isn't a great
solution but it's a lot less work, and more portable, than trying to use
POSIX message queues. The temporary file would be something like
/tmp/pv-<EUID>-<PID>.msg, and would be opened with O_NOFOLLOW and O_EXCL
to avoid symlinking attacks; does this sound like a reasonable plan?
Similarly, temporary files might work for replacing "-c" shared memory code.
Does Cygwin support mmap()? I could mmap() a file of the form
/tmp/pv-<TERMINAL>-shm.dat and use that to pass Y co-ordinate and
process count information.
More information about the Cygwin-apps
mailing list