grepを読む(その9)

続きです。

オプションと各フラグの関係がおおむね分かったので、続きを読んでいきます。
prtextの最後の部分です。

1357   after_last_match = bufoffset - (buflim - p);
1358   pending = out_quiet ? 0 : MAX (0, out_after);
1359   used = true;
1360   outleft -= n;
1361 }

after_last_matchの定義を見てみます。

 807 static off_t after_last_match;  /* Pointer after last matching line that
 808                                    would have been output if we were
 809                                    outputting characters. */

時々みかけるoff_t、どんな型なのか気になります。
/usr/includeの中を探してみます。

takk@deb9:/usr/include$ grep -r 'define.*\<off_t\>' *
numpy/npy_common.h:    #define npy_off_t off_t
zconf.h:#      define z_off_t off_t
takk@deb9:/usr/include$ 

見つかりません。
define定義ではなく、typdefですね。

takk@deb9:/usr/include$ grep -r 'typedef.*\<off_t\>' *
fcntl.h:typedef __off_t off_t;
fcntl.h:typedef __off64_t off_t;
mysql/my_global.h:typedef off_t os_off_t;
stdio.h:typedef __off_t off_t;
stdio.h:typedef __off64_t off_t;
unistd.h:typedef __off_t off_t;
unistd.h:typedef __off64_t off_t;
x86_64-linux-gnu/sys/mman.h:typedef __off_t off_t;
x86_64-linux-gnu/sys/mman.h:typedef __off64_t off_t;
x86_64-linux-gnu/sys/types.h:typedef __off_t off_t;
x86_64-linux-gnu/sys/types.h:typedef __off64_t off_t;
x86_64-linux-gnu/sys/stat.h:typedef __off_t off_t;
x86_64-linux-gnu/sys/stat.h:typedef __off64_t off_t;
takk@deb9:/usr/include$

ありました、が、さらに__off_tまたは__off64_tの定義を見つけねばなりません。

つづく