![[ 永远的UNIX::UNIX技术资料的宝库 ]](/images/title.gif)
|
| 首页 > 编程技术 > 源码天堂 > 正文 |
 |
| C:编写自己的grep命令 |
| 本文出自: http://ehnt.net/clansoft/gb/ (2001-06-19 19:10:22) |
// mygrep.c
#define ESIZE 1024
#define INIT register unsigned char *sp=instring;
#define GETC() (*sp++)
#define PEEKC() (*sp)
#define UNGETC(c) (--sp)
#define RETURN(c) return c;
#define ERROR(c) { regerr(c); return(NULL); }
#include "stdio.h"
#include "string.h"
#include "regexp.h"
int i;
unsigned char *nextpos;
static unsigned char lbuf[512], ebuf[ESIZE];
FILE *fp;
int regerr();
main(argc,argv)
int argc;
unsigned char *argv[];
{
if (argc < 3) {
fprintf(stderr,"Use: %s regular_expr files ..\n", argv[0]);
exit(-1);
}
if (nextpos=compile(argv[1], ebuf, &ebuf[ESIZE],'\0'))
for (i=2;i < argc;i++) {
if ((fp=fopen(argv[i],"rb"))==NULL)
printf("%s: read failure.\n",argv[i]);
else while (fgets(lbuf,sizeof(lbuf),fp))
if (step(lbuf,ebuf)) printf("%s: %s",argv[i],lbuf);
fclose(fp);
}
}
int regerr(c)
int c;
{
fprintf(stderr,"Error %d.\n", c);
}
// (END)
(http://www.fanqiang.com)
进入【UNIX论坛】
|
|
| 相关文章 |
|
|
|
|
 |
★ 樊强制作 欢迎分享 ★ |