Ik heb een volgend stuk code (beetje onrelevante dingen zoals logging enzo verwijderd):
Nu 'semid' word degelijk gezet en kan terug gevonden worden met 'ipcs'
De return code van semctl daarentegen is steeds -1 en errno staat steeds op EIDRM
Nochtans zelfs na de exit van het programma na die bepaalde regel vind ik de semaphore terug met ipcs
Weet iemand waaraan dit zou kunnen liggen ??
Het systeem is Debian Testing met kernel 2.6.12.6 en gcc 4.0.2
========================================
Oke, blijkbaar lag dit probleem aan de system librariers. Een 'apt-get dist-upgrade' later en deze code wel werkt. (Hier kan dus een slotje op)
code:
1
2
3
4
5
6
7
8
9
| int semid = -1, rtcode = -1;
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
} arg ;
semid = semget(IPC_PRIVATE, 1, 0666);
rtcode = semctl(semid, 0, SETVAL, arg); |
Nu 'semid' word degelijk gezet en kan terug gevonden worden met 'ipcs'
De return code van semctl daarentegen is steeds -1 en errno staat steeds op EIDRM
Nochtans zelfs na de exit van het programma na die bepaalde regel vind ik de semaphore terug met ipcs
Weet iemand waaraan dit zou kunnen liggen ??
Het systeem is Debian Testing met kernel 2.6.12.6 en gcc 4.0.2
========================================
Oke, blijkbaar lag dit probleem aan de system librariers. Een 'apt-get dist-upgrade' later en deze code wel werkt. (Hier kan dus een slotje op)
[ Voor 14% gewijzigd door Verwijderd op 06-01-2006 16:42 ]