Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Sockets 为用户空间客户端实现API的最佳方法_Sockets_System Calls - Fatal编程技术网

Sockets 为用户空间客户端实现API的最佳方法

Sockets 为用户空间客户端实现API的最佳方法,sockets,system-calls,Sockets,System Calls,我需要开发一个界面,用户空间客户端可以调用该界面来访问我已经实现的内核方法。我知道以下两种方法及其实现这一目标的优缺点 引入系统调用 优点:很简单,对于不同的内核方法,可以传递不同的参数 缺点:有副作用吗 引入一个新的套接字系列并使用IOCTL命令 优点:不需要API解释。每个人都知道如何使用插座 缺点:实施起来很耗时 这两种方法是否还有其他优点/缺点可以权衡以决定其中一种?编写一个用户模式库,导出好的旧函数,然后在库中以任何方式实现用户/内核界面。但是直接内核接口不公开是非常重要的。最

我需要开发一个界面,用户空间客户端可以调用该界面来访问我已经实现的内核方法。我知道以下两种方法及其实现这一目标的优缺点

  • 引入系统调用
    • 优点:很简单,对于不同的内核方法,可以传递不同的参数
    • 缺点:有副作用吗
  • 引入一个新的套接字系列并使用IOCTL命令
    • 优点:不需要API解释。每个人都知道如何使用插座
    • 缺点:实施起来很耗时

  • 这两种方法是否还有其他优点/缺点可以权衡以决定其中一种?

    编写一个用户模式库,导出好的旧函数,然后在库中以任何方式实现用户/内核界面。但是直接内核接口不公开是非常重要的。最终用户支持将是一场噩梦


    我更喜欢对设备驱动程序进行IOCTL调用。非常灵活,开销非常小。但是不是用户友好的。

    编写一个用户模式库,导出好的旧函数,然后在库中以任何方式实现用户/内核界面。但是直接内核接口不公开是非常重要的。最终用户支持将是一场噩梦

    我更喜欢对设备驱动程序进行IOCTL调用。非常灵活,开销非常小。但不是用户友好的