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实现写设备节点的主要内容,如果未能解决你的问题,请参考以下文章