1.7.0 sem_open
Corinna Vinschen
corinna-cygwin@cygwin.com
Fri Jun 12 08:49:00 GMT 2009
On Jun 12 01:50, Pedro Izecksohn wrote:
> Does the function sem_open work for anyone using Cygwin 1.7.0 ?
Yes.
> How to use semtool ?
What is semtool?
> I wrote an example that works on Jaunty on x86-64 but not on Cygwin:
> http://www.izecksohn.com/pedro/c/semaphores/semaphores.tar.gz
Works for me.
$ gcc -g test.c -o test
$ ./test /my-sem
Press ENTER to delete the semaphore or press Control c to its persistence.
I guess I see what you mean:
$ ./test my-sem
sem_open: Invalid argument
Maybe I was trying to be over-exact? sem_open creates a file in
/dev/shm. The semaphore name is expected to be an absolute pathname.
SUSv4 states:
The name argument conforms to the construction rules for a pathname,
except that the interpretation of <slash> characters other than the
leading <slash> character in name is implementation-defined, [...]
If name begins with the <slash> character, then processes calling
sem_open() with the same value of name shall refer to the same semaphore
object, as long as that name has not been removed. If name does not
begin with the <slash> character, the effect is implementation-defined.
In my implementation "implementation-defined" means, that the leading
slash is necessary.
Hmm. I guess I have to lift this restriction. However, this will very
likly result in "/sem-name" refering the same semaphore as "sem-name".
> Also: gcc4 does not understand the option "-lrt" so it must be removed.
Even if linking against librt.a would be necessary on Cygwin, which it
isn't, the gcc call is wrong. The libs must always follow the object
files which request symbols from the lib:
gcc -lfoo need-foo.c <-- wrong
gcc need-foo.c -lfoo <-- right
That's a restriction of ... I'm not quite sure, either some Windows
rules or in the ld implementation when building PE/COFF files.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
More information about the Cygwin
mailing list