I'm trying to port some Unix software that extensively uses shared
memory, semaphores, and threads.  Not sure if I'm pushing sh*t uphill,
but I got cygipc-1.13-2 installed, and the IPC daemon running.  I have a
simple case that hopefully shows my error ...

#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <cygwin/ipc.h>
#include <cygwin/shm.h>

int main (int argc, char **argv) {
        int             shm_id ;
        struct shmid_ds shm_buf ;
        int             ret ;

        shm_id = shmget(1234, 1048576, IPC_CREAT | IPC_EXCL | 0660) ;
        printf ("shm_id = %d\n", shm_id) ;
        ret = shmctl (shm_id, IPC_STAT, &shm_buf) ;
        printf ("ret = %d (%s)\n", ret, (ret == -1 ? strerror(errno) :
"")) ;
}

[src]$ gcc aa.c -o aa -L/usr/local/lib -lcygipc
[src]$ ./aa
shm_id = 1280
ret = -1 (Invalid argument)
[src]$ ipcs -a

---------- Shared Memory Segments --------
     shmid     key       bytes     nattch    status      
_shm 1280      1234      1048576   0                     

---------- Semaphore Arrays --------
     semid     nsems     key       

---------- Message Queues --------
     msqid     used-bytes  messages    


What am I missing here ?  The code works fine on Linux, HP-UX, Solaris,
...

Thanks,

Steve


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to