filemon
struct filemon;
struct filemon *
int filemon_close(struct filemon *);
int filemon_setfd(struct filemon *, int);
void filemon_setpid_parent(struct filemon *, pid_t);
int filemon_setpid_child(const struct filemon *, pid_t);
int filemon_readfd(const struct filemon *);
int filemon_process(struct filemon *);
filemon_setpid_parent(struct filemon *F MAKE_ATTR_UNUSED, pid_t pid MAKE_ATTR_UNUSED)
filemon_setpid_child(const struct filemon *F, pid_t pid)
filemon_close(struct filemon *F)
filemon_readfd(const struct filemon *F MAKE_ATTR_UNUSED)
filemon_process(struct filemon *F MAKE_ATTR_UNUSED)
struct filemon *
struct filemon *F;
filemon_setfd(struct filemon *F, int fd)
void (*show)(struct filemon *, const struct filemon_state *,
struct filemon *
struct filemon *F;
filemon_closefd(struct filemon *F)
filemon_setfd(struct filemon *F, int fd)
filemon_setpid_parent(struct filemon *F, pid_t pid)
filemon_setpid_child(const struct filemon *F, pid_t pid)
filemon_close(struct filemon *F)
filemon_readfd(const struct filemon *F)
filemon_dispatch(struct filemon *F)
filemon_process(struct filemon *F)
void (*show)(struct filemon *, const struct filemon_state *,
show_paths(struct filemon *F, const struct filemon_state *S,
struct filemon;
show_retval(struct filemon *F, const struct filemon_state *S,
show_chdir(struct filemon *F, const struct filemon_state *S,
show_execve(struct filemon *F, const struct filemon_state *S,
show_fork(struct filemon *F, const struct filemon_state *S,
show_link(struct filemon *F, const struct filemon_state *S,
show_open_read(struct filemon *F, const struct filemon_state *S,
show_open_write(struct filemon *F, const struct filemon_state *S,
show_open_readwrite(struct filemon *F, const struct filemon_state *S,
show_openat_read(struct filemon *F, const struct filemon_state *S,
show_openat_write(struct filemon *F, const struct filemon_state *S,
show_openat_readwrite(struct filemon *F, const struct filemon_state *S,
show_symlink(struct filemon *F, const struct filemon_state *S,
show_unlink(struct filemon *F, const struct filemon_state *S,
show_rename(struct filemon *F, const struct filemon_state *S,
filemon_sys_chdir(struct filemon *F, const struct filemon_key *key,
filemon_sys_execve(struct filemon *F, const struct filemon_key *key,
filemon_sys_exit(struct filemon *F, const struct filemon_key *key,
filemon_sys_fork(struct filemon *F, const struct filemon_key *key,
filemon_sys_link(struct filemon *F, const struct filemon_key *key,
filemon_sys_open(struct filemon *F, const struct filemon_key *key,
filemon_sys_openat(struct filemon *F, const struct filemon_key *key,
filemon_sys_symlink(struct filemon *F, const struct filemon_key *key,
filemon_sys_unlink(struct filemon *F, const struct filemon_key *key,
filemon_sys_rename(struct filemon *F, const struct filemon_key *key,
pbm->filemon = NULL;
pbm->filemon = filemon_open();
if (pbm->filemon == NULL) {
if (filemon_setfd(pbm->filemon, dupfd) == -1) {
pbm->filemon = NULL;
metafd = Mybm.filemon != NULL ? filemon_readfd(Mybm.filemon) : -1;
pbm->filemon = NULL;
if (useFilemon && pbm->filemon != NULL) {
if (filemon_setpid_child(pbm->filemon, pid) == -1) {
if (useFilemon && pbm->filemon != NULL) {
filemon_setpid_parent(pbm->filemon, pid);
if (useFilemon && pbm->filemon != NULL) {
return filemon_readfd(pbm->filemon);
if (useFilemon && pbm->filemon != NULL) {
return filemon_process(pbm->filemon);
if (pbm->filemon != NULL) {
while (filemon_process(pbm->filemon) > 0)
if (filemon_close(pbm->filemon) == -1) {
pbm->filemon = NULL;
struct filemon *filemon;