Ich habe eine andere Anzahl von Prozess, die auf den Shared Memory schreiben sollte, die ich bereits definiert habe. Ich versuche es mit System V-Semaphoren. Die Semaphore (sem_access
) auf 1 initialisiert wirdErhalte Zugriff auf shared Memory durch Semaphore
sem_access.sem_op = -1;
semop(sem_access_id, &sem_access, 1);
info->index++;
printf ("INDEX= %d\n", info->index);
sem_access.sem_op = 1;
semop(sem_access_id, &sem_access, 1);
Das Problem ist, dass die printf
druckt immer die gleiche Anzahl, ohne den Index zu erhöhen. PS: Sorry für mein schlechtes Englisch, aber ich bin Spanisch. edit: wenn ich eine sleep(1)
einfüge funktioniert es gut, aber ich will wirklich nicht den Schlaf!
Was ist der Rückgabewert von Ihrem 'semop()' Anrufe? Du ignorierst das. –
Es gibt 0 zurück, kein Fehler –