ふつうの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にも搭載(予定?)されているらしい。さすが青木さん・・・。