selinux
https://www.cnblogs.com/mingfeng002/p/6933429.html inotify主要功能
https://blog.csdn.net/zhangyifei216/article/details/51423580 进程概述和内存分配 mtrace mallinfo
openat
https://blog.csdn.net/tlight/article/details/41380177 SMACK简介
#include <fnmatch.h>
fnmatch
AT_FDCWD
#include <linux/filter.h>
struct sock_filter ,struct sock_fprog , BPF_LD SO_ATTACH_FILTER
lockf
flock(fd_lock, LOCK_SH|LOCK_NB)
fcntl - F_SETLK
get_current_dir_name
epoll_create1
/* request TERM signal if parent exits */
prctl(PR_SET_PDEATHSIG, SIGTERM);
chdir // cd
touch("/run/udev/queue");
static int command_do(struct kmod_module *mod, const char *type,
const char *cmd)
{
const char *modname = kmod_module_get_name(mod);
int err;
DBG(mod->ctx, "%s %s\n", type, cmd);
setenv("MODPROBE_MODULE", modname, 1);
err = system(cmd);
unsetenv("MODPROBE_MODULE");
if (err == -1) {
ERR(mod->ctx, "Could not run %s command '%s' for module %s: %m\n",
type, cmd, modname);
return -EINVAL;
}
if (WEXITSTATUS(err)) {
ERR(mod->ctx, "Error running %s command '%s' for module %s: retcode %d\n",
type, cmd, modname, WEXITSTATUS(err));
return -EINVAL;
}
return 0;
}