+ -
当前位置:首页 → 问答吧 → 请教:系统调用为何没有输出?

请教:系统调用为何没有输出?

时间:2010-10-20

来源:互联网

我想测试下应用程序的socket系统调用,然后就在内核源码的/net目录下的socket.c文件里,在函数sys_socket的实现部分的开头加上打印语句printf(“this is socket function\n”),
然后编译内核(版本是2.4.18的),重启后使用新的内核版本,但是运行写到的应用程序,运行正常,但是却没有看到我增加的那条打印语句,这是什么原因啊,难道socket没有调用内核的sys_socket函数吗?

作者: hnzpzg   发布时间: 2010-10-20

刚才是在RedHat 运行级别为5的x11时运行没有显示,但是在运行级别3时的命令行方式下就能显示了,这说明系统调用是调用了的,但是为什么运行级别为5时不能显示呢?

作者: hnzpzg   发布时间: 2010-10-20



QUOTE:
printf(“this is socket function\n”)


内核态打印消息,你确定用的是 printf 吗

作者: Godbach   发布时间: 2010-10-20

应该用printk()

作者: liuyangxky   发布时间: 2010-10-20

在函数中加的是printk(“this is socket function\n”),我写错了

作者: hnzpzg   发布时间: 2010-10-20

这个信息通常会打到系统日志中的,查看过没有

作者: Godbach   发布时间: 2010-10-20

/proc/kmsg中能够看到,但为啥运行程序是,在终端看不到呢,输出的优先级是<4>,级别高于控制台的<6>啊

作者: hnzpzg   发布时间: 2010-10-20