Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <fcntl.h>
static int num = 0;
static int ctrl_c(int);
int count = 0;
int main(int argc,char *argv[])
{
char c;
char st[8];
int f_in;
int f_out;
if (argc>=2){
signal(SIGINT,(void *)&ctrl_c);
printf("searching for %s in %s\n",argv[1],argv[2]);
f_in=open(argv[2],O_RDONLY);
f_out=open("res.txt",O_WRONLY | O_CREAT | O_TRUNC ,0666);
c=*argv[1];
printf("%c\n",c);
while (read(f_in,st,1)>0)
{if (st[0]==c)
{
printf("%c equ %c\n",st[0],c);
write(f_out,st,1);
read(f_in,st,7);
write(f_out,st,7);
num++;}
printf("%c !equ %c\n",st[0],c);
}
printf("finished\nfound %d\n",num);
close(f_in);
close(f_out);
return 0;
}
}
static int ctrl_c(int sig)
{
signal(SIGINT,(void *)&ctrl_c);
if (++num<3)
{printf("\nfound %d\n",count);}
else
{exit(0);}
}