C реализация команды linux - PullRequest
0 голосов
/ 04 мая 2020

Можно ли переписать следующий код, который воспроизводит функциональность команды grep в linux, в меньшем количестве строк кода? Или я могу что-то сделать, чтобы сэкономить память или сделать код еще более эффективным?

#include    <sys/types.h>
#include    <sys/stat.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <error.h>
#include    "ourhdr.h"
#define size 1024
int main(int argc, char **argv)
{
    char fis[100],car[10],buff[size];
    FILE *file;
if(argc!=3)
{
printf("Not all parameters were given <./a.out> <char> <numefisier>\n");
}
else
{
    file=fopen(argv[2],"r");
    if (file==NULL)
    {
    err_ret("Fisierul sursa nu exista %s", argv[2]);
    exit(0);
    }   
    strcpy(fis,argv[2]);
    strcpy(car,argv[1]);


    while((!feof(file)))
    {
        while(fgets(buff,size,file)!=NULL)
{
        if(strstr(buff,car))
            printf("%s \n",buff);
}


    }
    fclose(file);
}
return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...