テキストファイルの特定文字列がある行を残す

BUF が小さいのは,先頭の6文字目あたりに目的の文字列があるから.その行自体も文字数が少ないから,20くらいでいいな.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define BUF 128

int main ( int argc, char **argv )
{
	if ( argc < 4 )
		return 0;

	char *inFilename  = argv[1];
	char *outFilename  = argv[2];
	char *word = argv[3];

	FILE *inFile;
	fopen_s ( &inFile, inFilename, "r" );
	FILE *outFile;
	fopen_s ( &outFile, outFilename, "w" );

	if ( inFile == NULL || outFile == NULL )
		return 0;
	
	char line[BUF];
	for ( int counter = 0; fgets( line, BUF-1, inFile) != NULL; counter++ )
	{
		if ( strstr( line, word ) != NULL )
		{
			fputs( line, outFile );
		}
	}

	fclose( inFile );
	fclose( outFile );

	return 0;
}