c实现写设备节点

Posted 蚁人日记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c实现写设备节点相关的知识,希望对你有一定的参考价值。

二 :JNI部分修改
1.添加c文件,com_android_server_SelfManagerService.cpp,文件命名是有原因的,是因为我们的本地接口在com/android/server/SelfManagerService.java中,所以我们这样命名
frameworks/base/services/core/jni/com_android_server_SelfManagerService.cpp:
#define LOG_TAG “zhy”

#include “jni.h”
#include <nativehelper/JNIHelp.h>
#include “android_runtime/AndroidRuntime.h”
#include <utils/misc.h>
#include <utils/Log.h>
#include <hardware/vibrator.h>
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <sys/epoll.h>
#include <sys/timerfd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>

//方法在驱动中生成的节点
#define DEV_NAME “/dev/switch_gpio”

namespace android
{
static jint com_android_server_SelfManagerService_tngpio_read (JNIEnv* env, jobject clazz)
{
FILE *fp = NULL;
fp = fopen(DEV_NAME, “w+”);
char buff[255];
fgets(buff, 255, fp);
fclose(fp);
return atoi(buff);
}

static void com_android_server_SelfManagerService_tngpio_write (JNIEnv* env, jobject clazz, int level)

ALOGE("tngpio_write level= %d", level);
FILE *fp = NULL;
fp = fopen(DEV_NAME, "w+");
char str[255];
sprintf(str,"%d",level);
fputs(str,fp);
fclose(fp);
}
————————————————
版权声明:本文为CSDN博主「爱喝长岛冰茶的辉辉辉辉辉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44158983/article/details/106815187

以上是关于c实现写设备节点的主要内容,如果未能解决你的问题,请参考以下文章

c实现写设备节点

c实现写设备节点

关于drbd

安卓驱动设备节点权限设置

不写一行代码:实现安卓基于PWM的LED设备驱动

不写一行代码:实现安卓基于i2c bus的Slaver设备驱动