23 releases

0.5.2 Jul 21, 2019
0.5.0 Feb 28, 2019
0.4.0 Mar 11, 2018
0.3.16 Aug 11, 2017
0.3.15 Jul 17, 2017

#250 in Operating systems

Used in fac


4.5K SLoC

Rust 2K SLoC // 0.1% comments C 1.5K SLoC // 0.2% comments Python 780 SLoC // 0.2% comments Shell 99 SLoC // 0.2% comments

Windows Build Status CircleCI

Coverage Status codecov CII Best Practices


libbigbro is a library that provides two functions that enables you to run a command (i.e. fork and exec on a posix system) and track what files it reads or modifies. These two functions, bigbro and bigbro_with_mkdir are declared in bigbro.h, which documents their behavior in a comment.


bigbro is a simple demo utility that uses libbigbro to run a changes specified on the command line. It has no command-line flags, and is as easy to use as strace:

$ ./bigbro mail
No mail for droundy
r: /usr/lib/x86_64-linux-gnu/liblockfile.so.1.0
r: /usr/lib/x86_64-linux-gnu/liblockfile.so.1
r: /usr/bin/bsd-mailx
r: /usr/bin/mail
r: /lib/x86_64-linux-gnu/libc.so.6
r: /lib/x86_64-linux-gnu/libbsd.so.0.7.0
r: /lib/x86_64-linux-gnu/libc-2.19.so
r: /lib/x86_64-linux-gnu/libbsd.so.0
r: /etc/mail.rc
r: /etc/ld.so.cache
r: /etc/alternatives/mail

The purpose of bigbro is primarily to enable easy testing of libbigbro.


To build bigbro, you just need run:

sh build/linux.sh

If you have fac installed, you can alternatively build bigbro using fac. In this case, you can also simultaneously build bigbro and run the test suite, by running:

python3 run-tests.py