diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/ipcparent_8c-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/ipcparent_8c-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ - - -TB10.1 Example Applications: examples/PIPS/IPC/src/parent/ipcparent.c Source File - - - - -

examples/PIPS/IPC/src/parent/ipcparent.c

00001 // ipcparent.c
-00002 //
-00003 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-00004 // All rights reserved.
-00005 // This component and the accompanying materials are made available
-00006 // under the terms of "Eclipse Public License v1.0"
-00007 // which accompanies this distribution, and is available
-00008 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
-00009 //
-00010 // Initial Contributors:
-00011 // Nokia Corporation - initial contribution.
-00012 //
-00013 // Contributors:
-00014 //
-00015 // Description:
-00016 //
-00017 
-00018 //
-00019 
-00020 #include <stdio.h>
-00021 #include <fcntl.h>
-00022 #include <unistd.h>
-00023 #include <stdlib.h>
-00024 #include <sys/stat.h>
-00025 #include <errno.h>
-00026 #include <spawn.h>
-00027 #include <string.h>
-00028 #include <sys/wait.h>
-00029 
-00034 char PressKey()
-00035         {
-00036         char ch;
-00037         fflush(stdout);
-00038         ch=getchar();
-00039         return ch;
-00040         }
-00041 
-00047 int Error(char msg[])
-00048         {
-00050         printf("%s [Error NUMBER = %d]\n",msg,errno);
-00051         PressKey();
-00052         return EXIT_FAILURE;
-00053         }
-00054 
-00055 int main()
-00056         {
-00058         FILE* childProcessStream;
-00060         char fifoFileName[] = "myfifofile";
-00062         char fifoExecFileName[] = "z:\\sys\\bin\\fifochild";
-00064         char popenExecFileName[] = "z:\\sys\\bin\\ipcchild";
-00066         pid_t fifoChildPid;
-00068         int fifoRetVal;
-00069         int unlinkResult;
-00070         int fifoResult;
-00072         int     childProcessFD;
-00073         
-00074         char **argv=(char**)malloc(2*sizeof(char*));
-00075     argv[0]=(char*)malloc(50*sizeof(char));
-00076         argv[1] = 0;
-00077         strcpy(argv[0], fifoExecFileName);
-00078 
-00082     unlinkResult=unlink(fifoFileName);
-00083         fifoResult = mkfifo(fifoFileName,S_IXGRP);
-00085         if(fifoResult == -1)
-00086                 {
-00087                         Error("*** failure mkfifo ***");
-00088                         PressKey();
-00089                         return EXIT_FAILURE;
-00090                 }
-00092         fifoRetVal  = posix_spawn(&fifoChildPid, fifoExecFileName, NULL, NULL, argv, (char**)NULL);
-00094         free((void*)argv[0]);
-00095         free((void*)argv);
-00096         if(fifoRetVal != 0)
-00097                 {
-00098                 printf("failure posix_spawn [Error NUMBER = %d]\n",errno);
-00099         unlinkResult=unlink(fifoFileName);
-00100         if(unlinkResult!=0)
-00101             {
-00102             printf("failure posix_spawn [Error NUMBER = %d]\n",errno);
-00103             }
-00104                 PressKey();
-00105                 return EXIT_FAILURE;
-00106                 }
-00107         else
-00108                 {
-00110                 int fifoFd = open(fifoFileName,O_RDONLY);
-00112                 if(fifoFd == -1)
-00113                         {
-00115                         Error("*** failure FIFO Open ***");
-00116                         PressKey();
-00117                         return EXIT_FAILURE;
-00118                         }
-00119                 else
-00120                         {
-00122                         char buffer[100];
-00123                         int nbytes;
-00124                         memset(buffer,0,sizeof(buffer));
-00126                         nbytes = read(fifoFd,buffer,sizeof(buffer));
-00127                         printf("\nBytes Received=%d, Message Received from fifochild using [FIFO]=%s",nbytes,buffer);
-00129                         (void)close(fifoFd);
-00130                         }
-00132                 childProcessStream = popen(popenExecFileName,"r");
-00134                 if(childProcessStream == NULL)
-00135                         {
-00136                         Error("\n Failure to create child process with popen()");
-00137                         PressKey();
-00138                         return EXIT_FAILURE;
-00139                         }
-00140                 else
-00141                         {
-00143                         char buffer[100];
-00145                         int nbytes;
-00147                         childProcessFD = fileno(childProcessStream);
-00148                         memset(buffer,0,sizeof(buffer));
-00149                         printf("\n\nWaiting for message from Child[popen()]\n");
-00151                         nbytes = read(childProcessFD,buffer,sizeof(buffer));
-00152                         printf("Bytes Received=%d, Message Received from ipcchild using[popen()]=%s\n[ok]\n",nbytes,buffer);
-00154                         pclose(childProcessStream);
-00155                         }
-00157                 (void)waitpid(fifoChildPid,NULL,0);
-00159                 unlinkResult=unlink(fifoFileName);
-00160                 if(unlinkResult!=0)
-00161                         {
-00162                         Error("Unlink error");
-00163                         }
-00164                 }
-00165         printf("Press any key to exit...");
-00166         PressKey();
-00167         return EXIT_SUCCESS;
-00168         }
-

Generated on Thu Jan 21 10:33:00 2010 for TB10.1 Example Applications by  - -doxygen 1.5.3
- -