printk("-------ch %d -------------------\n",ch)
时间: 2024-03-19 10:38:26 浏览: 49
根据提供的引用内容,我无法找到与printk("-----\n",ch)相关的信息。请提供更多的上下文或详细说明,以便我能够更好地回答的问题。
--相关--:
1. 如何在C语言使用printf函数打字符串和变量的值?
2. printk函数在Linux内核中的作用是什么?
3. 如何在C语言中格式化输出整数变量的值?
相关问题
printk("%p:%d-------jc--------- \n",oskb->_skb_refdst ,__LINE__); 打印出来的目标地址为00000000ebe64cfa,代表什么意思
这个目标地址00000000ebe64cfa是一个内存地址,它指向一个物理内存位置,该位置存储了一个数据或对象。在这个特定的情况下,这个地址指向一个名为`oskb->_skb_refdst`的变量或对象。这个变量或对象的值是一个指针,指向另一个内存位置,该位置存储了一个`struct dst_entry`类型的数据结构。这个数据结构包含了网络协议栈中的路由信息,例如目标IP地址、下一跳IP地址等等。`__LINE__`是一个C语言预处理器宏,它会在编译时被替换为当前代码行号。因此,这个`printk`语句的作用是在内核日志中打印出`oskb->_skb_refdst`变量的地址和当前代码行号。
#include <linux/kernel.h> #include <linux/sched.h> #include <linux/module.h> #include <linux/init.h> #include <linux/moduleparam.h> static pid_t pid=1; module_param(pid, int, 0644); static int module1_init(void) { struct task_struct *p; struct list_head *pp; struct task_struct *psibling; //当前进程的PID p = pid_task(find_vpid(pid),PIDTYPE_PID); printk("me: %d %ld %s \n",p->pid,p->state,p->comm); //父进程 if(p->parent == NULL){ printk("No Parent\n"); } else{ printk("Parent:%d %ld %s \n",p->parent->pid,p->parent->state,p->parent->comm); } //兄弟进程 list_for_each(pp,&p->parent->children) { psibling = list_entry(pp,struct task_struct,sibling); printk("Brother %d %ld %s \n",psibling->pid,psibling->state,psibling->comm); } //子进程 list_for_each(pp,&p->children) { psibling = list_entry(pp,struct task_struct,sibling); printk("Children %d %ld %s \n",psibling->pid,psibling->state,psibling->comm); } return 0; } static void module1_exit(void) { printk(KERN_ALERT"goodbye!\n"); } module_init(module1_init); module_exit(module1_exit); MODULE_LICENSE("GPL");
这是一个 Linux 内核模块,可以获取指定进程的父进程、兄弟进程、子进程的信息,并打印输出。具体实现是通过调用 Linux 内核中的进程任务结构体 `task_struct` 中的成员变量来获取这些信息的。
其中,`module_param` 宏用于接收命令行参数,`module_init` 和 `module_exit` 宏分别用于指定模块的初始化函数和退出函数。`pid_task` 函数用于获取指定 PID 对应的进程任务结构体指针,而 `list_for_each` 宏则用于遍历双向链表。
需要注意的是,该模块需要在 Linux 内核源码目录下进行编译并加载,而且只能在特定的内核版本中运行。同时,也需要在加载时指定要查询的进程的 PID,例如:
```
insmod module1.ko pid=1234
```
这里的 `1234` 就是要查询的进程的 PID。
阅读全文