os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/spawnchild/src/tsemundo3.c
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description:
sl@0
    15
* Name        : tsemundo3.cpp
sl@0
    16
* 
sl@0
    17
*
sl@0
    18
*/
sl@0
    19
sl@0
    20
sl@0
    21
sl@0
    22
#include <string.h>
sl@0
    23
#include <locale.h>
sl@0
    24
#include <stdio.h>
sl@0
    25
#include <errno.h>
sl@0
    26
#include <sys/socket.h>
sl@0
    27
#include <sys/sockio.h>
sl@0
    28
#include <stdapis/netinet/in.h>
sl@0
    29
#include <stdapis/net/if.h>
sl@0
    30
#include <sys/stat.h>
sl@0
    31
#include <dirent.h>
sl@0
    32
#include <sys/cdefs.h>
sl@0
    33
#include <fcntl.h>
sl@0
    34
#include <math.h>
sl@0
    35
#include <unistd.h>
sl@0
    36
#include <sys/select.h>
sl@0
    37
#include <pthread.h>
sl@0
    38
#include <wchar.h>
sl@0
    39
#include <spawn.h>
sl@0
    40
sl@0
    41
#include <sys/sem.h>
sl@0
    42
#include <errno.h>
sl@0
    43
#include <sys/ipc.h>
sl@0
    44
#include <pthread.h>
sl@0
    45
#include <stdlib.h>
sl@0
    46
#include <unistd.h>
sl@0
    47
sl@0
    48
// semoptest18
sl@0
    49
sl@0
    50
int main()
sl@0
    51
	{
sl@0
    52
	int semkey,get=0,msq_id,err;
sl@0
    53
sl@0
    54
	union semun tmpo;
sl@0
    55
	unsigned short tmpi[2];
sl@0
    56
	struct sembuf lSemBuf[3];
sl@0
    57
	char *path;
sl@0
    58
	
sl@0
    59
	#if defined (__EPOC32__)
sl@0
    60
		path = "z:\\tstdapis\\tmisc.ini";
sl@0
    61
	#else
sl@0
    62
		path = "c:\\tstdapis\\tmisc.ini";
sl@0
    63
	#endif
sl@0
    64
	
sl@0
    65
	if ((semkey = ftok(path, 'r')) == (key_t) -1) 
sl@0
    66
		{
sl@0
    67
		printf("fail1");
sl@0
    68
		}
sl@0
    69
    
sl@0
    70
    if ((msq_id = semget(semkey,2, IPC_R|IPC_CREAT |0666)) == -1) 
sl@0
    71
		{
sl@0
    72
		printf("fail2");
sl@0
    73
		}
sl@0
    74
    
sl@0
    75
sl@0
    76
    
sl@0
    77
		lSemBuf[0].sem_num =0;
sl@0
    78
        lSemBuf[0].sem_op = 1;
sl@0
    79
        lSemBuf[0].sem_flg = 0;
sl@0
    80
sl@0
    81
		lSemBuf[1].sem_num =1;
sl@0
    82
        lSemBuf[1].sem_op = -3;
sl@0
    83
        lSemBuf[1].sem_flg = SEM_UNDO;
sl@0
    84
        
sl@0
    85
	err = semop(msq_id, &lSemBuf[0], 2);
sl@0
    86
sl@0
    87
    if(err == -1)
sl@0
    88
    	{
sl@0
    89
		printf("fail4");
sl@0
    90
		}
sl@0
    91
    tmpo.array = &tmpi[0];
sl@0
    92
    get = semctl(msq_id,1,GETALL,tmpo);
sl@0
    93
    if(get == -1)
sl@0
    94
    	{
sl@0
    95
    	printf("fail5");
sl@0
    96
    	}
sl@0
    97
    if( tmpi[0] != 1 && tmpi[1] != 1)
sl@0
    98
    	{
sl@0
    99
		printf("fail6");
sl@0
   100
		}
sl@0
   101
    
sl@0
   102
    return 0;
sl@0
   103
	}