首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用printk()?

如何使用printk()?
EN

Stack Overflow用户
提问于 2020-05-12 00:09:58
回答 1查看 601关注 0票数 0

这是第一次在Linux环境中工作。我需要你的很多帮助。我想在shced_setattr https://elixir.bootlin.com/linux/v4.18/source/kernel/sched/core.c#L4578中添加prink()

代码语言:javascript
复制
SYSCALL_DEFINE3(sched_setattr, pid_t, pid, struct sched_attr __user *, uattr,
                   unsigned int, flags)
{
    printk();
    struct sched_attr attr;
    struct task_struct *p;
    int retval;

    if (!uattr || pid < 0 || flags)
        return -EINVAL;

    retval = sched_copy_attr(uattr, &attr);
    if (retval)
        return retval;

    if ((int)attr.sched_policy < 0)
        return -EINVAL;

    rcu_read_lock();
    retval = -ESRCH;
    p = find_process_by_pid(pid);
    if (p != NULL)
        retval = sched_setattr(p, &attr);
    rcu_read_unlock();

    return retval;
}

但我不知道怎么编辑程序。如果有人能给我解释一下为printk()函数编辑linux函数,那就太好了!

EN

回答 1

Stack Overflow用户

发布于 2020-05-12 00:46:39

这完全取决于您尝试使用类似于printfprintk打印的内容。printk文档可在以下位置找到:

https://www.kernel.org/doc/html/latest/core-api/printk-formats.html

这也是来源的一部分:

Documentation/printk-formats.txt

最简单的调用只涉及不带占位符的格式字符串:

printk("sched_setattr called\n");

使用pid打印它将导致:

printk("sched_setattr called: pid: %d\n", pid);

可以使用dmesg读取输出。

printk还支持多个日志级别,但这与入门无关。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61734205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档