linux C回调函数
时间: 2023-12-29 13:25:24 浏览: 79
回调函数是一种在C语言中常用的编程技术,用于在特定事件或条件发生时,由另外的一方调用以响应该事件或条件。下面是一个Linux C回调函数的示例:
在callback.h头文件中声明了一个回调函数callback_t,并定义了两个函数set_callback和do_something,其中set_callback函数用于设置回调函数,do_something函数用于触发事件并调用回调函数。
```c
#ifndef __CALLBACK_H__
#define __CALLBACK_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef void(*callback_t)(int event_id, int value1, int value2, unsigned char *buffer, int buffer_size);
/* 设置回调函数 */
void set_callback(callback_t callback);
/* 触发事件并调用回调函数 */
void do_something();
#ifdef __cplusplus
}
#endif
#endif // __CALLBACK_H__
```
在callback.c文件中实现了回调函数的调用。在do_something函数中,定义了一个字符串buf,并将其作为参数传递给回调函数g_notify。
```c
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "callback.h"
static callback_t g_notify;
void set_callback(callback_t callback) {
g_notify = callback;
}
void do_something() {
char *buf = "vegeta";
g_notify(0, 1, 2, buf, strlen(buf));
}
```
这样,当调用do_something函数时,会触发事件并调用回调函数g_notify,将相应的参数传递给回调函数。
阅读全文