aboutsummaryrefslogtreecommitdiff
path: root/src/backend/port/qnx/tstshm.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-12-16 01:25:23 +0000
committerBruce Momjian <bruce@momjian.us>1999-12-16 01:25:23 +0000
commit7585deb0878bca96eee9a3e00fb5726c7725831c (patch)
treeabbc9add268b6fbc32af0871f8d14f804681747b /src/backend/port/qnx/tstshm.c
parent9805abb0fb1d2d57834a233d1a34279757d3f068 (diff)
downloadpostgresql-7585deb0878bca96eee9a3e00fb5726c7725831c.tar.gz
postgresql-7585deb0878bca96eee9a3e00fb5726c7725831c.zip
I have done the QNX4 port with the current source tree. The number of
backend/Makefiles to be patched could significantly be reduced since they have been adopted to the QNX4 needs. Andreas Kardos
Diffstat (limited to 'src/backend/port/qnx/tstshm.c')
-rw-r--r--src/backend/port/qnx/tstshm.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/backend/port/qnx/tstshm.c b/src/backend/port/qnx/tstshm.c
new file mode 100644
index 00000000000..4cd2110edde
--- /dev/null
+++ b/src/backend/port/qnx/tstshm.c
@@ -0,0 +1,80 @@
+/*-------------------------------------------------------------------------
+ *
+ * tstshm.c
+ * Test of System V Shared Memory Emulation
+ *
+ * Copyright (c) 1999, repas AEG Automation GmbH
+ *
+ *
+ * IDENTIFICATION
+ * $Header: /cvsroot/pgsql/src/backend/port/qnx/Attic/tstshm.c,v 1.1 1999/12/16 01:25:06 momjian Exp $
+ *
+ *-------------------------------------------------------------------------
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/shm.h>
+
+
+int main( int argc, char **argv )
+{
+ int c, errflg = 0;
+ char s[80];
+ key_t key = 0x1000;
+ size_t size = 256;
+ int shmid = -1;
+ caddr_t addr = NULL;
+
+ optarg = NULL;
+ while( !errflg && ( c = getopt( argc, argv, "k:s:" ) ) != -1 ) {
+ switch( c ) {
+ case 'k': key = atoi( optarg ); break;
+ case 's': size = atoi( optarg ); break;
+ default: errflg++;
+ }
+ }
+ if( errflg ) {
+ printf( "usage: tstshm [-k key] [-s size]\n" );
+ exit( 1 );
+ }
+
+ do {
+ printf( "shm(g)et, shm(a)t, shm(d)t, shm(c)tl, (w)rite, (r)ead, e(x)it: " );
+ scanf( "%s", s );
+ switch( s[0] ) {
+ case 'g':
+ shmid = shmget( key, size, IPC_CREAT | SHM_R | SHM_W );
+ if( shmid == -1 ) perror( "shmget" );
+ break;
+
+ case 'a':
+ addr = shmat( shmid, NULL, 0 );
+ if( addr == ( void * )-1 ) perror( "shmat" );
+ break;
+
+ case 'd':
+ if( shmdt( addr ) == -1 ) perror( "shmdt" );
+ else addr = NULL;
+ break;
+
+ case 'c':
+ if( shmctl( shmid, IPC_RMID, NULL ) == -1 ) perror( "shmctl" );
+ else shmid = -1;
+ break;
+
+ case 'w':
+ printf( "String to write: " );
+ scanf( "%s", addr );
+ break;
+
+ case 'r':
+ puts( addr );
+ break;
+ }
+ }
+ while( s[0] != 'x' );
+
+ return 0;
+}