commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mt...@apache.org
Subject cvs commit: jakarta-commons/daemon/src/native/nt/procrun/samples cchild.vcproj cchild.c
Date Thu, 08 Apr 2004 07:43:01 GMT
mturk       2004/04/08 00:43:01

  Added:       daemon/src/native/nt/procrun/samples cchild.vcproj cchild.c
  Log:
  Child sample application.
  Simple console application used for teststing stdio redirection and
  signaling mechanism between parent and child.
  
  Revision  Changes    Path
  1.1                  jakarta-commons/daemon/src/native/nt/procrun/samples/cchild.vcproj
  
  Index: cchild.vcproj
  ===================================================================
  <?xml version="1.0" encoding="Windows-1252"?>
  <VisualStudioProject
  	ProjectType="Visual C++"
  	Version="7.10"
  	Name="cchild"
  	ProjectGUID="{E9ABF9C5-CCF7-4372-B42A-07584D2441D8}"
  	Keyword="Win32Proj">
  	<Platforms>
  		<Platform
  			Name="Win32"/>
  	</Platforms>
  	<Configurations>
  		<Configuration
  			Name="Release|Win32"
  			OutputDirectory="..\obj\Release"
  			IntermediateDirectory="..\obj\Release"
  			ConfigurationType="1"
  			CharacterSet="2">
  			<Tool
  				Name="VCCLCompilerTool"
  				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
  				RuntimeLibrary="2"
  				UsePrecompiledHeader="0"
  				WarningLevel="3"
  				Detect64BitPortabilityProblems="TRUE"
  				DebugInformationFormat="3"/>
  			<Tool
  				Name="VCCustomBuildTool"/>
  			<Tool
  				Name="VCLinkerTool"
  				OutputFile="../bin/cchild.exe"
  				LinkIncremental="1"
  				GenerateDebugInformation="TRUE"
  				SubSystem="1"
  				OptimizeReferences="2"
  				EnableCOMDATFolding="2"
  				EntryPointSymbol=""
  				TargetMachine="1"/>
  			<Tool
  				Name="VCMIDLTool"/>
  			<Tool
  				Name="VCPostBuildEventTool"/>
  			<Tool
  				Name="VCPreBuildEventTool"/>
  			<Tool
  				Name="VCPreLinkEventTool"/>
  			<Tool
  				Name="VCResourceCompilerTool"/>
  			<Tool
  				Name="VCWebServiceProxyGeneratorTool"/>
  			<Tool
  				Name="VCXMLDataGeneratorTool"/>
  			<Tool
  				Name="VCWebDeploymentTool"/>
  			<Tool
  				Name="VCManagedWrapperGeneratorTool"/>
  			<Tool
  				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
  		</Configuration>
  		<Configuration
  			Name="Debug|Win32"
  			OutputDirectory="..\obj\Debug"
  			IntermediateDirectory="..\obj\Debug"
  			ConfigurationType="1"
  			CharacterSet="2">
  			<Tool
  				Name="VCCLCompilerTool"
  				Optimization="0"
  				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
  				MinimalRebuild="TRUE"
  				BasicRuntimeChecks="3"
  				RuntimeLibrary="3"
  				UsePrecompiledHeader="0"
  				WarningLevel="3"
  				Detect64BitPortabilityProblems="TRUE"
  				DebugInformationFormat="4"/>
  			<Tool
  				Name="VCCustomBuildTool"/>
  			<Tool
  				Name="VCLinkerTool"
  				OutputFile="../bin/cchildd.exe"
  				LinkIncremental="2"
  				GenerateDebugInformation="TRUE"
  				ProgramDatabaseFile="$(OutDir)/cchild.pdb"
  				SubSystem="1"
  				TargetMachine="1"/>
  			<Tool
  				Name="VCMIDLTool"/>
  			<Tool
  				Name="VCPostBuildEventTool"/>
  			<Tool
  				Name="VCPreBuildEventTool"/>
  			<Tool
  				Name="VCPreLinkEventTool"/>
  			<Tool
  				Name="VCResourceCompilerTool"/>
  			<Tool
  				Name="VCWebServiceProxyGeneratorTool"/>
  			<Tool
  				Name="VCXMLDataGeneratorTool"/>
  			<Tool
  				Name="VCWebDeploymentTool"/>
  			<Tool
  				Name="VCManagedWrapperGeneratorTool"/>
  			<Tool
  				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
  		</Configuration>
  		<Configuration
  			Name="Debug Unicode|Win32"
  			OutputDirectory="..\obj\$(ConfigurationName)"
  			IntermediateDirectory="..\obj\$(ConfigurationName)"
  			ConfigurationType="1"
  			CharacterSet="1">
  			<Tool
  				Name="VCCLCompilerTool"
  				Optimization="0"
  				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_UNICODE"
  				MinimalRebuild="TRUE"
  				BasicRuntimeChecks="3"
  				RuntimeLibrary="3"
  				UsePrecompiledHeader="0"
  				WarningLevel="3"
  				Detect64BitPortabilityProblems="TRUE"
  				DebugInformationFormat="4"/>
  			<Tool
  				Name="VCCustomBuildTool"/>
  			<Tool
  				Name="VCLinkerTool"
  				OutputFile="../bin/cchildud.exe"
  				LinkIncremental="2"
  				GenerateDebugInformation="TRUE"
  				ProgramDatabaseFile="$(OutDir)/cchild.pdb"
  				SubSystem="1"
  				TargetMachine="1"/>
  			<Tool
  				Name="VCMIDLTool"/>
  			<Tool
  				Name="VCPostBuildEventTool"/>
  			<Tool
  				Name="VCPreBuildEventTool"/>
  			<Tool
  				Name="VCPreLinkEventTool"/>
  			<Tool
  				Name="VCResourceCompilerTool"/>
  			<Tool
  				Name="VCWebServiceProxyGeneratorTool"/>
  			<Tool
  				Name="VCXMLDataGeneratorTool"/>
  			<Tool
  				Name="VCWebDeploymentTool"/>
  			<Tool
  				Name="VCManagedWrapperGeneratorTool"/>
  			<Tool
  				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
  		</Configuration>
  		<Configuration
  			Name="Release Unicode|Win32"
  			OutputDirectory="..\obj\$(ConfigurationName)"
  			IntermediateDirectory="..\obj\$(ConfigurationName)"
  			ConfigurationType="1"
  			CharacterSet="2">
  			<Tool
  				Name="VCCLCompilerTool"
  				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
  				RuntimeLibrary="2"
  				UsePrecompiledHeader="0"
  				WarningLevel="3"
  				Detect64BitPortabilityProblems="TRUE"
  				DebugInformationFormat="3"/>
  			<Tool
  				Name="VCCustomBuildTool"/>
  			<Tool
  				Name="VCLinkerTool"
  				OutputFile="../bin/cchildu.exe"
  				LinkIncremental="1"
  				GenerateDebugInformation="TRUE"
  				SubSystem="1"
  				OptimizeReferences="2"
  				EnableCOMDATFolding="2"
  				TargetMachine="1"/>
  			<Tool
  				Name="VCMIDLTool"/>
  			<Tool
  				Name="VCPostBuildEventTool"/>
  			<Tool
  				Name="VCPreBuildEventTool"/>
  			<Tool
  				Name="VCPreLinkEventTool"/>
  			<Tool
  				Name="VCResourceCompilerTool"/>
  			<Tool
  				Name="VCWebServiceProxyGeneratorTool"/>
  			<Tool
  				Name="VCXMLDataGeneratorTool"/>
  			<Tool
  				Name="VCWebDeploymentTool"/>
  			<Tool
  				Name="VCManagedWrapperGeneratorTool"/>
  			<Tool
  				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
  		</Configuration>
  	</Configurations>
  	<References>
  	</References>
  	<Files>
  		<Filter
  			Name="Source Files"
  			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
  			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
  			<File
  				RelativePath=".\cchild.c">
  			</File>
  		</Filter>
  		<Filter
  			Name="Header Files"
  			Filter="h;hpp;hxx;hm;inl;inc;xsd"
  			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
  		</Filter>
  		<Filter
  			Name="Resource Files"
  			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
  			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
  		</Filter>
  	</Files>
  	<Globals>
  	</Globals>
  </VisualStudioProject>
  
  
  
  1.1                  jakarta-commons/daemon/src/native/nt/procrun/samples/cchild.c
  
  Index: cchild.c
  ===================================================================
  /* Copyright 2000-2004 The Apache Software Foundation
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
   
  /* Simple console child */
  
  #include <windows.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <stddef.h>
  #include <conio.h>
  #include <time.h>
  #include <process.h>    /* _beginthread, _endthread */
  #include <fcntl.h>
  #include <io.h>
  
  #define STDIN_FILENO  0
  #define STDOUT_FILENO 1
  #define STDERR_FILENO 2
  
  #define STDO_MESSAGE "Simple STDOUT_FILENO message\n"
  #define STDE_MESSAGE "Simple STDERR_FILENO message\n"
  
  #define NLOOPS          5
  #define NTHREADS       10
  
  static int do_echo = 0;
  BOOL WINAPI ControlHandler ( DWORD dwCtrlType )
  {
     printf("\nCTRL Event %d ", dwCtrlType);
     switch (dwCtrlType) {
     case CTRL_BREAK_EVENT:
        printf("CTRL+BREAK\n");
        exit(1);
        return TRUE;
     case CTRL_C_EVENT:
        printf("CTRL+C");
        return TRUE;
        break;
  
     }
     putch('\n');
     return FALSE;
  }
  
  unsigned __stdcall threadfunc(void *args)
  {
      int i, p , r;
      p = (int)(size_t)args;
      printf("Created thread %d %04x\n", p, GetCurrentThreadId());
      srand((unsigned)time(NULL) + p);
      for (i = 0; i < NLOOPS; i++) {
          r = rand() % 1000;
          Sleep(r);
          printf("Thread %d message %d\n", p, i);
      }
      printf("Quiting thread %d %04x\n", p, GetCurrentThreadId());
      _endthreadex(0);
      return 0;
  }
  
  
  int main(int argc, char *argv[])
  {
      int i, conio = 0, threads = 0;
      char buf[256];
      HANDLE htrd[NTHREADS];
  
      OutputDebugString("cchild starting");
      fprintf(stdout, "cchild starting %s\n", argv[0]);
      fflush(stdout);
      SetConsoleCtrlHandler(ControlHandler, TRUE);
      Sleep(1000);
      
      for (i = 0; i < __argc; i++) {
          fprintf(stdout, "argv[%d] %s\n", i, __argv[i]);
          fflush(stdout);
          if (strcmp(__argv[i], "--") == 0)
              do_echo = 1;
          else if (strcmp(__argv[i], "-c") == 0)
              conio = 1;
          else if (strcmp(__argv[i], "-t") == 0)
              threads = 1;
      }
      fflush(stdout);
      fprintf(stderr, "Simple stderr message\n");
      fflush(stderr);
      write(STDOUT_FILENO, STDO_MESSAGE, sizeof(STDO_MESSAGE) - 1);
      write(STDERR_FILENO, STDE_MESSAGE, sizeof(STDE_MESSAGE) - 1);
      
      if (conio) {
          cputs("Type 'Y' when finished typing keys...");
          do {
              i = getch();
              i = toupper(i);
          } while (i != 'Y');
          putch('\n');
      }
      if (do_echo) {
          cputs("Going to echo loop...\n");
          while ((i = read(STDIN_FILENO, buf, 256)) > 0) {
              buf[i] = '\0';
              fputs(buf, stdout);
              if (strcmp(buf, "quit\n") == 0)
                  break;
          }
      }
      if (threads) {
          for (i = 0; i < NTHREADS; i++) {
              unsigned id;
              htrd[i] = (HANDLE)_beginthreadex(NULL, 0, threadfunc, (void *)(size_t)i, 0,
&id);
          }
          WaitForMultipleObjects(10, htrd, TRUE, INFINITE);
      }
  
      fprintf(stdout, "cchild finishing\n");
      fprintf(stdout, "cchild finished\n");
      Sleep(1000);
      OutputDebugString("cchild Ended");
      return 0;
  }
  
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message