首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux内核编程

Linux内核编程
EN

Stack Overflow用户
提问于 2013-04-07 19:37:08
回答 1查看 144关注 0票数 0

我想捕获pipe() syscall,所以我在pipe.c中更改了源代码

代码语言:javascript
复制
static pipe_hook_t pipe_hook;
pipe_hook_t set_pipe_hook(pipe_hook_t hook)
{
    pipe_hook_t old_hook = pipe_hook;
    pipe_hook = hook;
    printk(KERN_INFO, "pipe hook: %p", hook);
    return old_hook;
}

EXPORT_SYMBOL_GPL(set_pipe_hook); 

然后,我尝试在syscalls.h文件(包含在pipe.c中)中定义pipe_hook_t。

代码语言:javascript
复制
typedef void (*pipe_hook_t)(int *filedes);
pipe_hook_t set_pipe_hook(pipe_hook_t hook);

我犯了一个错误:

代码语言:javascript
复制
fs/pipe.c:1130: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘pipe_hook’
fs/pipe.c:1131: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘set_pipe_hook’
fs/pipe.c:1138: error: ‘set_pipe_hook’ undeclared here (not in a function)
fs/pipe.c:1138: warning: type defaults to ‘int’ in declaration of ‘set_pipe_hook’
fs/pipe.c: In function ‘sys_pipe2’:
fs/pipe.c:1153: error: ‘pipe_hook’ undeclared (first use in this function)
fs/pipe.c:1153: error: (Each undeclared identifier is reported only once
fs/pipe.c:1153: error: for each function it appears in.)
fs/pipe.c:1154: error: implicit declaration of function ‘pipe_hook’

我尝试创建自己的.h文件并在其中定义pipe_hook_t,但错误是相同的

EN

回答 1

Stack Overflow用户

发布于 2013-04-08 22:57:37

问题已经解决了。我只是混淆了头文件所在的目录。

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

https://stackoverflow.com/questions/15861916

复制
相关文章

相似问题

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