gpt4 book ai didi

c - 为什么 printf 显示 unsigned int 的负值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:30 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Unsigned long with negative value

我写了一个内核模块,它可以中断任何系统调用,打印它的当前 user_id 和传递给系统调用函数的输入参数。其中,一个是sys_ioctl()如下:

asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd,unsigned long arg);

这意味着所有输入参数都是无符号整数。

但是当我打印输入参数时,我得到以下输出:

 fd=21, cmd=-1072143871 and arg=3202983648 
fd=21, cmd=-1072143871 and arg=3202983648
fd=21, cmd=-1072143871 and arg=3202983648
----------

这是我的函数定义:

asmlinkage long our_sys_ioctl(unsigned int fd ,  unsigned int cmd , unsigned long arg)
{
uid_t gtuid ;
gtuid = getuid_call();
printk ("our_sys_ioctl ---> uid = %d with fd=%i, cmd=%i and arg=%lu \n ", gtuid, fd, cmd, arg);
return original_call_ioctl(fd , cmd , arg);
}

知道为什么 cmd 值为负以及这些值是什么意思吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com