/* john pfeiffer 2010-07 safe way to get command line and copy/append strings
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFERMAX 16
int main(int argc, char* argv[])
{
char c;
FILE* fptr;
char filename[ BUFFERMAX ];
if( argc != 2 )
{ fprintf( stderr , "\nwrong parameters, usage: ") ;
fprintf( stderr , "%s infile.txt\n" , argv[0] );
fprintf( stderr , "%d characters max filename\n" , BUFFERMAX );
exit( 1 );
}
memset ( filename , 0 , strlen( filename ) );
if( BUFFERMAX - strlen( argv[1] ) - 1 )
{
strncat ( filename , argv[1] , BUFFERMAX );
/* strncat stops copying/appending after the str2 null char, then
appends a null char ... but requires manual check for negative values*/
}
printf( "%s = %d\n" , filename , BUFFERMAX - strlen( argv[1] ) - 1);
fptr = fopen( filename , "rb" );
if( fptr == NULL)
{ fprintf( stderr , "Error opening input file! %s" , strerror(errno) );
exit( 1 );
}
while( !feof( fptr ) && !ferror( fptr) )
{
c = fgetc( fptr ) ;
/* fputc( c , stdout ) ; */
}
fclose( fptr );
return 0;
}/*end of main*/