ふつうのLinuxプログラミング 第8章 grepコマンドを作る
いよいよやってきました!!「grepコマンドを作る」!!自分で正規表現ライブラリなんか書いたら・・・いつまでかかるか・・・お手軽libcを使って書いていきます。
前に作ったheadコマンドを修正してっと。make debug!!
(gdb) r "[grep]{4,}" grep.c
Starting program: /home/tanaka/study/c/normal/grep/grep "[grep]{4,}" grep.c
#include <regex.h>
#define PROGRAM_NAME "grep"
void grep(regex_t *pat, FILE *f);
regex_t pat;
regerror(err, &pat, buf, sizeof buf);
grep(&pat, stdin);
grep(&pat, f);
void grep(regex_t *pat, FILE *f)
if (regexec(pat, buf, 0,NULL,0) == 0)
perror(s);
Program exited normally.
(gdb)うほぉ!!自作grep!!こんなに簡単に出来るとは・・・(libcのおかげ)
一度セグメンテーションフォルトが出たので、何処でエラーが出たかすぐ判るgdbの威力は絶大です。(iと1を間違えた)
何故か、regexまで引っかかってます!!あぁ、r・e・g・e。確かに・・・。
- メモ
- libcのregex.hは多バイトには対応していないようなので、注意が必要と。鬼車をチェック。
- 鬼車
どうやら、Rubyにも搭載(予定?)されているらしい。さすが青木さん・・・。