【问题标题】:maximum size of parameters to system call系统调用的最大参数大小
【发布时间】:2014-12-03 04:08:18
【问题描述】:

我正在尝试在 Linux 内核中实现一个新的系统调用?

作为参数传递给系统调用的数据是否有最大大小?

例如,一个参数是一个 char 指针,但我注意到如果我为该 char 数组分配大量(数十 KB),内核就会崩溃。

如果有限制,有什么出路?共享内存(但如何)?

【问题讨论】:

  • 您的实际问题是“我做错了什么?”,没有代码就无法回答。
  • 最好具体说明您正在探索的系统调用。

标签: memory-management linux-kernel operating-system


【解决方案1】:

您不应向系统调用传递超过 6 个参数。

如果你愿意,你可以提供一个指针并从内核访问指向的区域,但要注意使用正确的函数来执行此操作,例如 uaccess.h (copy_to/from_user ...) 中的函数或使用映射或异步 IO。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2013-04-22
    • 2013-02-21
    相关资源
    最近更新 更多