You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FUSE高级IOCTL函数接收空参数问题排查求助

FUSE高级IOCTL函数接收空参数问题排查求助

我最近在开发一个FUSE文件系统,碰到了个头疼的问题:不管我怎么调用ioctl系统调用,FUSE高级API实现的ioctl处理函数里的arg和data两个参数始终是NULL。我不确定是自己对这两个参数的含义理解错了,还是用户态程序的系统调用写法有问题。

下面是我的代码片段,希望各位能给我一些调试或修复的建议,非常感谢!

FUSE 端IOCTL处理函数

static int cu_fuse_ioctl(const char* path_, int cmd, void* arg, struct fuse_file_info*, unsigned int flags, void* data) {
   if(arg == NULL) {
      printf("arg was null!\n");
   }

   if(data == NULL) {
      printf("data was null!\n");
   }

   return 0;
}

用户态调用程序

int main() {
    const char *dev_path = "/home/theassembler1/src/view/.spec_dev";
    const char *message = "test";
    int fd;
    int ret;
    char buffer[256];

    fd = open(dev_path, O_RDWR);
    if (fd == -1) {
        perror("Failed to open device");
        // 此处省略后续错误处理代码
    }

    // 注:原代码未完整展示ioctl的具体调用语句,推测会有类似如下的调用
    // ret = ioctl(fd, CUSTOM_IOCTL_CMD, message);
    // 或者 ret = ioctl(fd, CUSTOM_IOCTL_CMD, buffer);
}

目前我完全找不到问题所在,有没有大佬能指点下排查方向,或者指出我代码里的问题?再次感谢!

备注:内容来源于stack exchange,提问作者Noah Lewis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:54:50