summaryrefslogtreecommitdiffstats
path: root/test/misc/sem.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/misc/sem.c')
-rw-r--r--test/misc/sem.c72
1 files changed, 37 insertions, 35 deletions
diff --git a/test/misc/sem.c b/test/misc/sem.c
index 7606fd180..62a59b1e9 100644
--- a/test/misc/sem.c
+++ b/test/misc/sem.c
@@ -1,43 +1,45 @@
#include <stdio.h>
+#include <string.h>
+#include <errno.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int main(void)
{
- int k, r;
- union semun {
- int val;
- struct semid_ds *buf;
- unsigned short int *array;
- struct seminfo *__buf;
- } sd;
- struct semid_ds sd_buf;
-
- k = semget(IPC_PRIVATE, 10, IPC_CREAT | 0666 );
- printf("%d\n", k);
-
- if (k < 0) {
- printf("semget failed: %m\n");
- return 1;
- }
-
- sd.buf = &sd_buf;
- r = semctl(k, 0, IPC_STAT, sd);
- printf("%d\n", r);
-
- if (r < 0) {
- printf("semctl IPC_STAT failed: %m\n");
- return 1;
- }
-
- printf("sem_nsems = %lu\n", sd_buf.sem_nsems);
- if (sd_buf.sem_nsems != 10) {
- printf("failed: incorrect sem_nsems!\n");
- return 1;
- }
-
- printf("succeeded\n");
-
- return 0;
+ int k, r;
+ union semun {
+ int val;
+ struct semid_ds *buf;
+ unsigned short int *array;
+ struct seminfo *__buf;
+ } sd;
+ struct semid_ds sd_buf;
+
+ k = semget(IPC_PRIVATE, 10, IPC_CREAT | 0666 );
+ printf("semget(IPC_CREAT) = %d\n", k);
+
+ if (k < 0) {
+ fprintf(stderr, "semget failed: %s\n", strerror(errno));
+ return 1;
+ }
+
+ sd.buf = &sd_buf;
+ r = semctl(k, 0, IPC_STAT, sd);
+ printf("semctl(k) = %d\n", r);
+
+ if (r < 0) {
+ perror("semctl IPC_STAT failed");
+ return 1;
+ }
+
+ printf("sem_nsems = %lu\n", sd_buf.sem_nsems);
+ if (sd_buf.sem_nsems != 10) {
+ fprintf(stderr, "failed: incorrect sem_nsems!\n");
+ return 1;
+ }
+
+ printf("succeeded\n");
+
+ return 0;
}