Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何获取系统调用的参数列表及其类型?_C++_C_Linux_System - Fatal编程技术网

C++ 如何获取系统调用的参数列表及其类型?

C++ 如何获取系统调用的参数列表及其类型?,c++,c,linux,system,C++,C,Linux,System,我想知道是否有办法获得linux系统调用的所有参数及其类型。。。作为列表或任何数据结构。使用C或C++绝对。 有一些方法可以给出参数的内存地址,但我需要实际值 或者如果有人能告诉我如何从这些内存地址中获取真正的值?因为这些地址在不同的时间持有不同类型的值 有人能帮我吗?试试看这里,看起来它应该能帮你找到你要去的地方: man你能举例说明你的意思吗?在这个链接中,你会找到一个例子,演示如何读取系统写入系统调用寄存器。我希望与其他系统调用一起使用,并希望读取实际值,而不是内存地址。例如,在该程序中,

我想知道是否有办法获得linux系统调用的所有参数及其类型。。。作为列表或任何数据结构。使用C或C++绝对。 有一些方法可以给出参数的内存地址,但我需要实际值

或者如果有人能告诉我如何从这些内存地址中获取真正的值?因为这些地址在不同的时间持有不同类型的值


有人能帮我吗?

试试看这里,看起来它应该能帮你找到你要去的地方:


man
你能举例说明你的意思吗?在这个链接中,你会找到一个例子,演示如何读取系统写入系统调用寄存器。我希望与其他系统调用一起使用,并希望读取实际值,而不是内存地址。例如,在该程序中,输出类似于:Write调用1,1075154944,30。这里第二个值是地址。。通过谷歌搜索短语“linux系统调用列表”(包括每个调用的参数信息),您是否正在查找
strace
?它已经为您编写了所有150719
案例。这只给出了参数的数量。。。我还需要参数类型:(如果您有权限,您可以查看定义这些调用的头文件,它应该有每个调用的签名,允许您获取类型。
root/include/linux/syscalls.h
。您应该能够在运行时解析它并获得所需的内容。请参见“是”。但我很困惑……我是否应该将其作为文本读取并解析所需的信息信息…或者还有其他聪明的方法吗?可能是元编程或任何在运行时确定函数参数类型的方法。我想说的是,如果任何其他建议的解决方案,如strace,不满足您的需要,那么您可以解析它并以这种方式获得您需要的信息。