#include #include #include void printLastChars( const char *fileName, int howMany ) { FILE *fp; char *buffer; int charsRead; int fileSize; if( ( buffer = malloc( howMany ) ) == NULL ) { fprintf( stderr, "Out of space!!\n" ); return; } if( ( fp = fopen( fileName, "rb" ) ) == NULL ) fprintf( stderr, "Can not open %s\n", fileName ); else { /* Get The Size Of The File */ fseek( fp, 0, SEEK_END ); fileSize = ftell( fp ); if( fileSize < howMany ) howMany = fileSize; /* Copy Its End */ fseek( fp, - howMany, SEEK_END ); charsRead = fread( buffer, 1, howMany, fp ); fwrite( buffer, 1, charsRead, stdout ); fclose( fp ); } free( buffer ); } int main( int argc, char *argv[] ) { while( --argc ) printLastChars( *++argv, 5 ); }