我想编写一个具有以下功能的C / C ++程序:
如何实现这些?或者你可以给我一个提示,我可以自己找出来!谢谢!
答案 0 :(得分:4)
首先,您应该具备一些基本的Linux编程知识,因此请仔细阅读Advanced Linux Programming。研究像sash这样的简单shell的源代码,并使用strace(1)(例如在现有命令上)来猜测使用了哪些系统调用。
然后你可能想要使用setrlimit(2)和ptrace(2)系统调用。
你写道:
远离任何Linux内核函数,这意味着当子进程要求函数不属于标准C库时,我可以阻止它并终止进程。
我不确定这有什么意义。任何Linux程序(非感知永不终止while(true);
循环除外)都会执行一些syscalls,特别是write(2)某些输出(请参阅syscalls(2)列表)。并且系统调用是应用程序要求内核执行某些操作的意思(因此系统调用 以受控方式使用Linux内核函数)。
请注意,程序可以在不使用GlibC的情况下进行系统调用。还有替代的libc实现,例如MUSL-Libc。
您可能也对LD_PRELOAD tricks感兴趣。
/proc/
文件系统肯定很有用。阅读proc(5)。