//grep
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char*argv[])
{
  FILE*fs=fopen(argv[2],"r");
  if(fs==NULL)
     return 0;
  char ch;
  int count=0,biglinelenth=0;
  while((ch=fgetc(fs))!=EOF)
  {
     count++;
     if(ch=='\n')
     {
        if(count>biglinelenth)
           biglinelenth=count;
        count=0;
     }
  }
  char*s=(char*)malloc(biglinelenth*sizeof(char));
  while(fgets(s,biglinelenth,fs)!=NULL)
  {
     if(strstr(s,argv[1])!=NULL)
        printf("%s",s);
  }
}
//filesize,bigline,biglinelenth,lines
#include<stdio.h>
#include<string.h>
int main(int argc,char*argv[])
{
  FILE*fs=fopen(argv[1],"r");
  if(fs==NULL)
     return 0;
  char ch;
  int count=0,biglinelenth=0,line=0,filesize=0,bigline;
  while((ch=fgetc(fs))!=EOF)
  {
     count++;
     filesize++;
     if(ch=='\n')
     {
          line++;
          if(count>biglinelenth)
            { biglinelenth=count;
               bigline=line;
            }
          count=0;
      }
    }
    printf("filesize:%d lines: %d bigline: %d biglinelenth: %d",filesize,line,bigline,biglinelenth);
//wc command
#include<stdio.h>
#include<string.h>
int main(int argc,char*argv[])
{
  FILE*fs=fopen(argv[1],"r");
  if(fs==NULL)
     return 0;
  char ch;
  int line=0,filesize=0,word=0;
  while((ch=fgetc(fs))!=EOF)
  {
     filesize++;
      if(ch=='\n')
         line++;
      if((ch==' ')||(ch=='\n'))
         word++;
    }
    printf("lines: %d words: %d filesize:%d filename:%s",line,word,filesize,argv[1]);