QNX and abstract namespace??

Hi folks,

i am just sitting about the mono-project and had the problem that after a certain point of initiallization my file-system screwd. Finally i found out that this occured because the process tried to create a UNIX socket in the abstract namespace. I changed it to create the socket in the filesystem (/tmp/…) and now the problem is gone.

But still: i would like to know what this abstract namespace is, how it works and why it screws up my QNX fs. (google wasn’t very halpfull with that)

Any ideas???

Thanks in advance

cya Smee

I am not sure what do you mean “abstract” namespace. Did you mean “relative”?

Creating Unix Domain Socket with a relative path (like “…/…/udomain”) is problem.
One have to use absolute path. Is that what you seeing? But I havn’t seen how this
could screwd file-system…

neither am i :neutral_face:

But here is an explenation from developerweb.net/forum/viewtopic.php?t=1016

“Another approach (and, one I’ve adopted whenever I use Unix
domain sockets) is to use unnamed Unix domain sockets… These
are the kind you get, for instance, when you do socketpair()…
There is no associated file on disk for them, at all… Everything
about them is ephemeral, and exists solely within the kernel’s
memory… But, you need not use socketpair() to create them; you
can make your own, with whatever arbitrary names/addresses
you wish to use, so that they can be found by another app wanting
to connect to them… The trick is simply to fill in the first byte of
“sun_path” with a null byte, and then fill the remainder of it with
whatever arbitrary name you wish to use”

Perhaps this helps a little,

THX, Smee

And someone in the same thread reported it’s not working for OS X, and it’s a Linux specific thing…

A pathname starting with a NULL? I don’t think POSIX would happy.