日期:2014-05-16  浏览次数:20615 次

C++是否可以直接调用所有的system call?
有没有什么注意事项呢?

------解决方案--------------------
于安全性的考虑,在linux2.4.18之后,已经不再导出sys_call_table符号了。
在这种情况下,如果要修改系统调用函数,就必须首先要获得sys_call_table这个符号地址。

最简单的一种方法,但是平台依赖性太强,移植性不好。
通过grep sys_call_table /boot/System.map,从System.map(不同的系统,这个文件的名字有些许的不同)文件中,来获得sys_call_table的地址。

------解决方案--------------------
可以!

------解决方案--------------------
如果权限够理论上是
------解决方案--------------------
标准C++完全兼容标准C的,所以答案是可以。