mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-27 01:03:45 +01:00 
			
		
		
		
	git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2262 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			186 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| 
 | |
| Copyright (c)  1999-2006 Intel Corporation. All rights reserved
 | |
| This program and the accompanying materials are licensed and made available 
 | |
| under the terms and conditions of the BSD License which accompanies this 
 | |
| distribution.  The full text of the license may be found at
 | |
| http://opensource.org/licenses/bsd-license.php
 | |
| 
 | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
| */
 | |
| 
 | |
| // GC_TODO: fix comment to start with /*++
 | |
| #include "stdio.h"
 | |
| #include "string.h"
 | |
| #include "stdlib.h"
 | |
| 
 | |
| //
 | |
| // Utility Name
 | |
| //
 | |
| #define UTILITY_NAME  "SplitFile"
 | |
| 
 | |
| //
 | |
| // Utility version information
 | |
| //
 | |
| #define UTILITY_MAJOR_VERSION 0
 | |
| #define UTILITY_MINOR_VERSION 1
 | |
| 
 | |
| void
 | |
| Version (
 | |
|   void
 | |
|   )
 | |
| /*++
 | |
| 
 | |
| Routine Description:
 | |
| 
 | |
|   Displays the standard utility information to SDTOUT
 | |
| 
 | |
| Arguments:
 | |
| 
 | |
|   None
 | |
| 
 | |
| Returns:
 | |
| 
 | |
|   None
 | |
| 
 | |
| --*/
 | |
| {
 | |
|   printf ("%s v%d.%d -Utility to break a file into two pieces at the request offset.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION);
 | |
|   printf ("Copyright (c) 1999-2007 Intel Corporation. All rights reserved.\n");
 | |
| }
 | |
| 
 | |
| void
 | |
| Usage (
 | |
|   void
 | |
|   )
 | |
| /*++
 | |
| 
 | |
| Routine Description:
 | |
| 
 | |
|   GC_TODO: Add function description
 | |
| 
 | |
| Arguments:
 | |
| 
 | |
| 
 | |
| Returns:
 | |
| 
 | |
|   GC_TODO: add return values
 | |
| 
 | |
| --*/
 | |
| {
 | |
|   Version();
 | |
|   printf ("\nUsage: \n\
 | |
|    SplitFile Filename Offset\n\
 | |
|      where:\n\
 | |
|        Filename: Input file to split\n\
 | |
|        Offset: offset at which to split file\n\
 | |
|    The output files will be named <Filename>1 and <Filename>2 with \n\
 | |
|    <Filename> being given as the input file name.\n");
 | |
| }
 | |
| 
 | |
| int
 | |
| main (
 | |
|   int argc,
 | |
|   char*argv[]
 | |
|   )
 | |
| /*++
 | |
| 
 | |
| Routine Description:
 | |
| 
 | |
|   GC_TODO: Add function description
 | |
| 
 | |
| Arguments:
 | |
| 
 | |
|   argc  - GC_TODO: add argument description
 | |
|   ]     - GC_TODO: add argument description
 | |
| 
 | |
| Returns:
 | |
| 
 | |
|   GC_TODO: add return values
 | |
| 
 | |
| --*/
 | |
| {
 | |
|   FILE          *In;
 | |
| 
 | |
|   FILE          *Out1;
 | |
| 
 | |
|   FILE          *Out2;
 | |
|   char          OutName1[512];
 | |
|   char          OutName2[512];
 | |
|   unsigned long Index;
 | |
|   unsigned long splitpoint;
 | |
|   char          CharC;
 | |
| 
 | |
|   if (argc == 1) {
 | |
|     Usage();
 | |
|     return -1;
 | |
|   }
 | |
|     
 | |
|   if ((strcmp(argv[1], "-h") == 0) || (strcmp(argv[1], "--help") == 0) ||
 | |
|       (strcmp(argv[1], "-?") == 0) || (strcmp(argv[1], "/?") == 0)) {
 | |
|     Usage();
 | |
|     return -1;
 | |
|   }
 | |
|   
 | |
|   if ((strcmp(argv[1], "-V") == 0) || (strcmp(argv[1], "--version") == 0)) {
 | |
|     Version();
 | |
|     return -1;
 | |
|   }
 | |
|   
 | |
|   if (argc != 3) {
 | |
|     Usage ();
 | |
|     return -1;
 | |
|   }
 | |
| 
 | |
|   In = fopen (argv[1], "rb");
 | |
|   if (In == NULL) {
 | |
|     printf ("Unable to open file \"%s\"\n", argv[1]);
 | |
|     return -1;
 | |
|   }
 | |
| 
 | |
|   strncpy (OutName1, argv[1], 510);
 | |
|   strncpy (OutName2, argv[1], 510);
 | |
|   strcat (OutName1, "1");
 | |
|   strcat (OutName2, "2");
 | |
| 
 | |
|   Out1 = fopen (OutName1, "wb");
 | |
|   if (Out1 == NULL) {
 | |
|     printf ("Unable to open file \"%s\"\n", OutName1);
 | |
|     return -1;
 | |
|   }
 | |
| 
 | |
|   Out2 = fopen (OutName2, "wb");
 | |
|   if (Out2 == NULL) {
 | |
|     printf ("Unable to open file \"%s\"\n", OutName2);
 | |
|     return -1;
 | |
|   }
 | |
| 
 | |
|   splitpoint = atoi (argv[2]);
 | |
| 
 | |
|   for (Index = 0; Index < splitpoint; Index++) {
 | |
|     CharC = (char) fgetc (In);
 | |
|     if (feof (In)) {
 | |
|       break;
 | |
|     }
 | |
| 
 | |
|     fputc (CharC, Out1);
 | |
|   }
 | |
| 
 | |
|   for (;;) {
 | |
|     CharC = (char) fgetc (In);
 | |
|     if (feof (In)) {
 | |
|       break;
 | |
|     }
 | |
| 
 | |
|     fputc (CharC, Out2);
 | |
|   }
 | |
| 
 | |
|   fclose (In);
 | |
|   fclose (Out1);
 | |
|   fclose (Out2);
 | |
| 
 | |
|   return 0;
 | |
| }
 |