diff --git a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp index a09805e35ce9331e43491909fa8fcef57362f4f5..a8e348bbb585cfda6e9f949357629e1befa417c1 100644 --- a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp +++ b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp @@ -384,9 +384,13 @@ int IntelliSenseServer::CreateNewRtgGrp(int prioType, int rtNum) struct rtg_grp_data grp_data; int ret; char fileName[] = "/proc/self/sched_rtg_ctrl"; - int fd = open(fileName, O_RDWR); - if (fd < 0) { + FILE* f = fopen(fileName, "r+"); + if (f == nullptr) { RME_LOGE("Open file /proc/self/sched_rth_ctrl, errno = %{public}d", errno); + return -1; + } + int fd = fileno(f); + if (fd < 0) { return fd; } (void)memset_s(&grp_data, sizeof(struct rtg_grp_data), 0, sizeof(struct rtg_grp_data)); @@ -403,7 +407,10 @@ int IntelliSenseServer::CreateNewRtgGrp(int prioType, int rtNum) } else { RME_LOGI("create rtg grp success, get rtg id %{public}d.", ret); } - close(fd); + int fc = fclose(f); + if (fc != 0) { + RME_LOGE("fclose file /proc/self/sched_rth_ctrl, errno = %{public}d (%{public}s)", errno, strerror(errno)); + } return ret; } } // namespace RME diff --git a/interfaces/innerkits/frameintf/rtg_interface.cpp b/interfaces/innerkits/frameintf/rtg_interface.cpp index 3677b6fc0e54e4d73dc91e6bab2ee8d0a8e8fd45..9d07449859c8c8e68b718a9a5104719a8c14c1f6 100644 --- a/interfaces/innerkits/frameintf/rtg_interface.cpp +++ b/interfaces/innerkits/frameintf/rtg_interface.cpp @@ -65,11 +65,15 @@ static int g_fd = -1; __attribute__((constructor)) void BasicOpenRtgNode() { char fileName[] = "/proc/self/sched_rtg_ctrl"; - g_fd = open(fileName, O_RDWR); - if (g_fd < 0) { + FILE* fd = fopen(fileName, "r+"); + if (fd == nullptr) { RME_LOGI("rtg Open fail, errno = %{public}d(%{public}s), dev = %{public}s", errno, strerror(errno), fileName); return; } + g_fd = fileno(fd); + if (g_fd < 0) { + return; + } RME_LOGI("rtg Open success"); return; } @@ -79,8 +83,11 @@ __attribute__((destructor)) void BasicCloseRtgNode() if (g_fd < 0) { return; } - RME_LOGI("rtg Close g_fd ret is %{public}d", g_fd); - close(g_fd); + FILE* fd = fdopen(g_fd, "r+"); + if (fd != nullptr) { + RME_LOGI("rtg Close g_fd ret is %{public}d", g_fd); + fclose(fd); + } g_fd = -1; } diff --git a/qos_manager/src/qos_common.cpp b/qos_manager/src/qos_common.cpp index 364413dfa5d3b1098ad48d47cd834a47c187bfc3..5efe2419aaa8eb543bd8fc830855d61f4d3c1f92 100644 --- a/qos_manager/src/qos_common.cpp +++ b/qos_manager/src/qos_common.cpp @@ -31,7 +31,11 @@ namespace QosCommon { static int TrivalOpenAuthCtrlNode(void) { char fileName[] = "/dev/auth_ctrl"; - int fd = open(fileName, O_RDWR); + FILE* f = fopen(fileName, "r+"); + if (f == nullptr) { + return -1; + } + int fd = fileno(f); return fd; } @@ -57,7 +61,10 @@ int AuthEnable(int pid, unsigned int flag, unsigned int status) if (ret < 0) { RME_LOGE("auth enable failed for pid %{public}d with status %{public}u\n", pid, status); } - close(fd); + FILE* f = fdopen(fd, "r+"); + if (f != nullptr) { + fclose(f); + } return ret; } @@ -83,7 +90,10 @@ int AuthPause(int pid) if (ret < 0) { RME_LOGE("auth pause failed for pid %{public}d\n", pid); } - close(fd); + FILE* f = fdopen(fd, "r+"); + if (f != nullptr) { + fclose(f); + } return ret; } @@ -106,7 +116,10 @@ int AuthDelete(int pid) if (ret < 0) { RME_LOGE("auth delete failed for pid %{public}d\n", pid); } - close(fd); + FILE* f = fdopen(fd, "r+"); + if (f != nullptr) { + fclose(f); + } return ret; }