graham@tcom.stc.co.uk (Graham Bardsley) (01/15/91)
Is there anything at all wrong with the following code? When it's run on a Sparc 1+ running 4.0.3c (EXPORT I presume), it fails with the message : `Sem create failed: Bad address' from the return from the IPC_STAT. It similarly fails if an IPC_SET is attempted. It works fine on Sun3. I've looked at the bug lists we have here but find no mention of it, so should I report this or what?? #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> static struct semid_ds ctlbuf; int SemCreate(key, val) int key; int val; { int id; int status; struct sembuf op; if ((id=semget((key_t) key, 1, IPC_CREAT | 0666)) == -1) { return -1; } if (semctl(id, 0, IPC_STAT, &ctlbuf) == -1) /* Fails here */ { semctl(id, 0, IPC_RMID, 0); return -1; } return id; } int main(argv,argc) char **argc; { int sem=SemCreate(123,1); if (sem == -1) { perror("Sem create failed"); exit(1); } exit(0); } Graham Bardsley,STC Telecoms,Oakleigh Road South,New Southgate, London, N11 1HB ..{uunet,mcsun}!ukc!stc!graham <graham@tcom.stc.co.uk> Tel: +44 81 945 3799