comm);  } int main() { execname(); return 0; } | find_task_by_id ....">

当前位置:  技术问答>linux和unix

为什么以下代码不能调用find_task_by_id

    来源: 互联网  发布时间:2016-02-07

    本文导语:  #include  #include  #include  void execname() { struct task_struct *my; my = find_task_by_id(getpid()); printf("%s",my->comm);  } int main() { execname(); return 0; } | find_task_by_id 是个内核函数,你在用户空间没法调...

#include 
#include 
#include 
void execname() {
struct task_struct *my;
my = find_task_by_id(getpid());
printf("%s",my->comm); 
}

int main() {
execname();
return 0;
}

|
find_task_by_id

是个内核函数,你在用户空间没法调用.你不能这样直接使用它.

下边是别人写的,可以看看


#include
#include
#include
#include
#include

MODULE_LICENSE("GPL");
MODULE_AUTHOR("scutan");

static int find_read(char *buffer, char **buffer_location, off_t offset, int count, int *eof, void *data)
{
        struct task_struct *p;
        int pid;
        pid = current->pid;
        p = find_task_by_pid(pid);
        sprintf(buffer, "%dt%sn", p->pid, p->comm);
        return strlen(buffer);
}

static int __init find_init(void)
{
        struct proc_dir_entry *entry;
        entry = create_proc_entry("findpid", 0644, NULL);
        if (entry == 0)
        {
                printk(KERN_ERR "creat_proc_entry failedn");
                return -1;
        }
        entry->mode = S_IFREG | S_IRUGO;
        entry->size = 100;
        entry->owner = THIS_MODULE;
        entry->uid = 0;
        entry->gid = 0;
        entry->read_proc = find_read;
        return 0;
}

void __exit find_exit(void)
{
        remove_proc_entry("findpid", &proc_root);
}

module_init(find_init);
module_exit(find_exit);

Makefile
代码:
obj-m:=find.o
KERNELDIR:=/usr/src/linux

default:
        make -C $(KERNELDIR) M=$(shell pwd) modules
install:
        insmod find.ko
uninstall:
        rmmod find.ko
clean:
        rm -rf *.o *.mod.c *.ko

另外还有一个测试程序get.c
代码:
#include
#include
#include
#include
#include

int main()
{
        int fd;
        char buf[50];
        fd = open("/proc/findpid", O_RDONLY);
        if (fd 

    
 
 

您可能感兴趣的文章:

  • Linux源代码中ata驱动为什么要调用pci驱动的代码
  • 如何在SERVLET中调用一段汇编代码?
  • 使用gdb时为什么调用list不出现代码
  • 调用常量还要实例化吗?看下面代码
  • linux系统调用函数在下载的源代码的哪个文件夹下面
  • C# 中调用 MySQL 存储过程的示例代码
  • 求调用ie代码,运行成功即给分,在线等待!
  • Linux下如何在代码中调用PrintScreen方法
  • 我如何在代码里通过调用"ping"命令得到它的exit code
  • 请问如何调用LINUX中源程序中的代码?
  • 跪求:请问如何在程序中写代码调用函数对硬盘进行分区和格式化
  • C# 调用 MySQL 存储过程的代码
  • 求助:能给出一个在jsp里调用ActiveX控件的代码吗?
  • 我想写一段代码,要调用到libpcap库的函数,要怎么做.
  • PHP父类调用子类方法的代码例子
  • Java动态调用类中方法代码
  • c# 调用批处理(bat)的实现代码
  • 请问如何在C代码里面调用shell命令?
  • 调用其它进程的问题,附代码
  • jni的方法,用java调用c的代码,遇到的问题!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 谁有过开源代码移植方面的经验,能不能谈谈这方面的经验?
  • 100分求助 能不能提供一些有关图像分割的算法和实现代码!谢谢
  • 源代码不能安装
  • 哪位大哥能不能提供一个简单一点的Telnet服务器的代码?(Linux的telnetd挺复杂的)
  • 我如何在代码里通过调用"ping"命令得到它的exit code iis7站长之家
  • 各位大侠,一般我们做了一个application,加那些代码使这个application的窗口大小不能改变。(内空)给25分
  • 用Jbuilder3 遇到问题不能运行把可疑代码注掉后可以运行但是重新使用可疑代码时又可以运行了多次重复都是如此
  • QT Designer生成的代码不能生成可执行程序
  • 请大家看一看我的jsp代码,为什么不能使用?
  • 我在windows下用xterm登陆LINUX,但是不能直接在windows下copy代码到xterm窗口上,有人知道怎么搞定吗?
  • java的线程的setDaemon()设为true,怎么不能运行呢?代码有误么?
  • 在VC下可以编绎的一段代码为何在LINUX下就不能通过了?
  • 为什么在applet里面显示一个弹出试菜单,不能显示,跟踪可以知道,代码都已经运行,为什么?为什么?
  • 高手们请救救我,为什么我的VAJ里可视化组合和源代码不能照应??急,急,急!
  • 我用java做的applet站内搜索程序,不能搜索中文,那位大虾能帮帮我?代码如下:
  • 哪里有VI和EMACS的源代码??我去GNU的FTP站点了,没找到,知道的朋友们,能不能告诉小弟一声,谢谢了!!!
  • 这段代码怎么不能输出args?
  • 为啥这段代码可以编译却不能执行? (急)
  • 不能在子类或外部类发布C#事件代码分析
  • 请帮我看看这小段代码,为什么不能在循环中执行sql?
  • javascript 添加到收藏夹和书签代码示例
  • 在JBuilder中,为什么编写的代码中,当代码出现关键字时,后面的部分代码就移位了,当在有关键字的那些代码行进行选择时,也会出现鼠标位
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 为什么两行代码间不加入其他代码就崩溃,而加入了日志代码后就不崩溃?
  • JSP中清空cookie代码参考
  • 在ubuntu8.10 新立得中安装anjuta,为什么没有代码提示功能,怎么做才有,还有自动代码补全和代码提示有什么区别,
  • Python获取网页编码的方法及示例代码
  • 到底怎么样的代码算是有效代码?请教了。。
  • HTML网页中的html body onload自动跳转方法介绍及自动跳转代码示例
  • 如果要研究源代码以提高自己,哪一个开放源代码的软件比较合适?
  • php通过socket_bind()设置IP地址代码示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3