mergeivs.c
上传用户:fubang
上传日期:2009-06-18
资源大小:2071k
文件大小:1k
源码类别:

其他

开发平台:

Unix_Linux

  1. #include <string.h>
  2. #include <stdio.h>
  3. #include "pcap.h"
  4. int main( int argc, char *argv[] )
  5. {
  6.     int i, n;
  7.     unsigned long nbw;
  8.     unsigned char buffer[1024];
  9.     FILE *f_in, *f_out;
  10.     if( argc < 4 )
  11.     {
  12.         printf( "usage: mergeivs <ivs file 1> <ivs file 2> .. <output file>n" );
  13.         return( 1 );
  14.     }
  15.     printf( "Creating %sn", argv[argc - 1] );
  16.     if( ( f_out = fopen( argv[argc - 1], "wb+" ) ) == NULL )
  17.     {
  18.         perror( "fopen failed" );
  19.         return( 1 );
  20.     }
  21.     nbw = 0;
  22.     for( i = 1; i < argc - 1; i++ )
  23.     {
  24.         printf( "Opening %sn", argv[i] );
  25.         if( ( f_in = fopen( argv[i], "rb" ) ) == NULL )
  26.         {
  27.             perror( "fopen failed" );
  28.             return( 1 );
  29.         }
  30.         if( fread( buffer, 1, 4, f_in ) != 4 )
  31.         {
  32.             perror( "fread file header failed" );
  33.             return( 1 );
  34.         }
  35.         if( memcmp( buffer, IVSONLY_MAGIC, 4 ) != 0 )
  36.         {
  37.             printf( "%s is not an .ivs filen", argv[i] );
  38.             return( 1 );
  39.         }
  40.         if( i == 1 )
  41.             fwrite( buffer, 1, 4, f_out );
  42.         while( ( n = fread( buffer, 1, 1024, f_in ) ) > 0 )
  43.         {
  44.             nbw += n;
  45.             fwrite( buffer, 1, n, f_out );
  46.             printf( "%ld bytes writtenr", nbw );
  47.         }
  48.         fclose( f_in );
  49.         printf( "n" );
  50.     }
  51.     fclose( f_out );
  52.     return( 0 );
  53. }