同步主线和解决依赖问题

This commit is contained in:
shaozhimin 2023-09-25 14:58:41 +08:00
parent 3d174f3008
commit 09aff52c22
31 changed files with 762 additions and 132 deletions

57
debian/changelog vendored
View File

@ -1,3 +1,60 @@
libkysdk-system (2.2.3.5-0k0.15) yangtze; urgency=medium
*Bug号
*需求号:
*其他修改libysdk-system在openkylin上编包安装报错
libkysdk-location包内定义的依赖不足导致安装或运行失败
-- szm-min <shaozhimin@kylinos.cn> Thu, 21 Sep 2023 17:31:25 +0800
libkysdk-system (2.2.3.5-0k0.14) yangtze; urgency=medium
*Bug号190186 【日历】修改系统语言为英文,重启进入系统后任务栏日历显示三
*需求号:
*其他修改:
-- szm-min <shaozhimin@kylinos.cn> Tue, 05 Sep 2023 17:19:20 +0800
libkysdk-system (2.2.3.5-0k0.13) yangtze; urgency=medium
*Bug号
*需求号:
*其他修改kyrealtime增加c++接口
-- tianshaoshuai <tianshaoshuai@kylinos.cn> Thu, 31 Aug 2023 15:38:00 +0800
libkysdk-system (2.2.3.5-0k0.12) yangtze; urgency=medium
*Bug号190215 【走查】sdk时间格式切换未实时变化
*需求号:
*其他修改:
-- szm-min <shaozhimin@kylinos.cn> Wed, 30 Aug 2023 16:56:09 +0800
libkysdk-system (2.2.3.5-0k0.11) yangtze; urgency=medium
*Bug号187435 【可信开发试点】libkysdk-system 缓冲区溢出类安全编码问题整改
*需求号:
*其他修改:
-- szm-min <shaozhimin@kylinos.cn> Mon, 21 Aug 2023 09:10:09 +0800
libkysdk-system (2.2.3.5-0k0.10) yangtze; urgency=medium
*Bug号
*需求号:
*其他修改拆分libkysdk-hardware的动态库
-- szm-min <shaozhimin@kylinos.cn> Fri, 11 Aug 2023 17:07:47 +0800
libkysdk-system (2.2.3.5-0k0.9) yangtze; urgency=medium
*Bug号185309
*需求号:
*其他修改:
-- szm-min <shaozhimin@kylinos.cn> Thu, 03 Aug 2023 10:07:56 +0800
libkysdk-system (2.2.3.5-0k0.8) yangtze; urgency=medium
*Bug号184351 184469

6
debian/control vendored
View File

@ -320,7 +320,8 @@ Architecture: any
Section: utils
Depends: libkysdk-systemcommon,
libglib2.0-0,
libc6
libc6,
python3-requests
Multi-Arch: same
Description: 地理位置库
@ -455,7 +456,8 @@ Depends: libkysdk-systemcommon,
logrotate,
libc6,
libgcc-s1 | libgcc1,
libstdc++6
libstdc++6,
cron
Multi-Arch: same
Description: 日志转储服务

View File

@ -1 +1,7 @@
usr/lib/kysdk/kysdk-system/libkyhw.so*
usr/lib/kysdk/kysdk-system/libkybluetooth.so*
usr/lib/kysdk/kysdk-system/libkyedid.so*
usr/lib/kysdk/kysdk-system/libkyfan.so*
usr/lib/kysdk/kysdk-system/libkyhwinfo.so*
usr/lib/kysdk/kysdk-system/libkyprinter.so*
usr/lib/kysdk/kysdk-system/libkyusb.so*

View File

@ -1 +1,4 @@
usr/lib/kysdk/kysdk-system/libkysysinfo.so*
po/kysdk-sysinfo_mn.mo usr/share/locale/mn/LC_MESSAGES/
po/kysdk-sysinfo_zh_CN.mo usr/share/locale/zh_CN/LC_MESSAGES/
po/kysdk-sysinfo_bo_CN.mo usr/share/locale/bo_CN/LC_MESSAGES/

3
debian/libkysdk-sysinfo.postinst vendored Normal file
View File

@ -0,0 +1,3 @@
mv /usr/share/locale/mn/LC_MESSAGES/kysdk-sysinfo_mn.mo /usr/share/locale/mn/LC_MESSAGES/kysdk-sysinfo.mo
mv /usr/share/locale/zh_CN/LC_MESSAGES/kysdk-sysinfo_zh_CN.mo /usr/share/locale/zh_CN/LC_MESSAGES/kysdk-sysinfo.mo
mv /usr/share/locale/bo_CN/LC_MESSAGES/kysdk-sysinfo_bo_CN.mo /usr/share/locale/bo_CN/LC_MESSAGES/kysdk-sysinfo.mo

BIN
po/kysdk-sysinfo_bo_CN.mo Normal file

Binary file not shown.

24
po/kysdk-sysinfo_bo_CN.po Normal file
View File

@ -0,0 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-03 13:56+0800\n"
"PO-Revision-Date: 2023-08-03 13:59+0800\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"Language: bo_CN\n"
#: src/systeminfo/libkysysinfo.c:161
#, c-format
msgid "Kylin Linux Desktop V10 (SP1)"
msgstr "ཆི་ལིན་གྱི་ཅོག་ངོས་ V10(SP1)"

BIN
po/kysdk-sysinfo_mn.mo Normal file

Binary file not shown.

24
po/kysdk-sysinfo_mn.po Normal file
View File

@ -0,0 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-02 16:06+0800\n"
"PO-Revision-Date: 2023-08-02 16:10+0800\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: mn\n"
#: src/systeminfo/libkysysinfo.c:143
#, c-format
msgid "Kylin Linux Desktop V10 (SP1)"
msgstr "ᠶᠢᠨ ᠾᠧ ᠴᠢ ᠯᠢᠨ ᠵᠢᠯᠤᠭᠤᠳᠬᠤ ᠰᠢᠰᠲ᠋ᠧᠮ v10sp1"

BIN
po/kysdk-sysinfo_zh_CN.mo Normal file

Binary file not shown.

24
po/kysdk-sysinfo_zh_CN.po Normal file
View File

@ -0,0 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-02 16:28+0800\n"
"PO-Revision-Date: 2023-08-02 16:30+0800\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"Language: zh_CN\n"
#: src/systeminfo/libkysysinfo.c:146
#, c-format
msgid "Kylin Linux Desktop V10 (SP1)"
msgstr "银河麒麟桌面操作系统V10 (SP1)"

View File

@ -319,7 +319,7 @@ char** kdk_get_disklist()
goto err_out;
}
res = tmp;
res[counts] = malloc(PATH_MAX * sizeof(char) + 1);
res[counts] = malloc(PATH_MAX * sizeof(char) + 1 + PATH_MAX);
res[counts][PATH_MAX + 1] = 0;
// 调整出绝对路径
@ -498,7 +498,7 @@ kdk_diskinfo *kdk_get_diskinfo(const char *diskname)
{
strcpy(res->fwrev, "None");
}else{
char buf[10] = {0};
char buf[FWREV_SIZE] = {0};
read(tfd, buf, FWREV_SIZE);
strcpy(res->fwrev, buf);
close(tfd);
@ -754,12 +754,12 @@ char* kdk_get_hard_serial(const char *hardname)
{
return NULL;
}
char *hard_serial = (char *)malloc(128*sizeof(char));
char *hard_serial = (char *)malloc(256*sizeof(char));
if (!hard_serial)
{
return NULL;
}
memset(hard_serial, 0, 128);
memset(hard_serial, 0, 256);
char line[256] = "\0";
char path[128] = "\0";
char tmp[1024] = "\0";

View File

@ -1,10 +1,68 @@
aux_source_directory(. SOURCESCODE)
include_directories(.)
include(FindPkgConfig)
pkg_check_modules(GLIB REQUIRED glib-2.0)
include_directories(${GLIB_INCLUDE_DIRS})
add_library(kyhw SHARED ${SOURCESCODE})
set(HARDWARE_TOP_DIR ${CMAKE_CURRENT_LIST_DIR})
set(hwcode
"${HARDWARE_TOP_DIR}/libkybios.h"
"${HARDWARE_TOP_DIR}/libkybios.c"
"${HARDWARE_TOP_DIR}/libkyboard.h"
"${HARDWARE_TOP_DIR}/libkyboard.c"
"${HARDWARE_TOP_DIR}/libkycpu.h"
"${HARDWARE_TOP_DIR}/libkycpu.c"
"${HARDWARE_TOP_DIR}/libkydisplay.h"
"${HARDWARE_TOP_DIR}/libkydisplay.c"
"${HARDWARE_TOP_DIR}/libkync.h"
"${HARDWARE_TOP_DIR}/libkync.c")
set(bluetoothcode
"${HARDWARE_TOP_DIR}/libkybluetooth.h"
"${HARDWARE_TOP_DIR}/libkybluetooth.c")
set(edidcode
"${HARDWARE_TOP_DIR}/libkyedid.h"
"${HARDWARE_TOP_DIR}/libkyedid.c")
set(fancode
"${HARDWARE_TOP_DIR}/libkyfan.h"
"${HARDWARE_TOP_DIR}/libkyfan.c")
set(hwinfocode
"${HARDWARE_TOP_DIR}/libkyhw.h"
"${HARDWARE_TOP_DIR}/libkyhw.c")
set(printercode
"${HARDWARE_TOP_DIR}/libkyprinter.h"
"${HARDWARE_TOP_DIR}/libkyprinter.c")
set(usbcode
"${HARDWARE_TOP_DIR}/libkyusb.h"
"${HARDWARE_TOP_DIR}/libkyusb.c")
add_library(kyhw SHARED ${hwcode})
set_target_properties(kyhw PROPERTIES VERSION 2.0.0 SOVERSION 1)
add_library(kybluetooth SHARED ${bluetoothcode})
set_target_properties(kybluetooth PROPERTIES VERSION 2.0.0 SOVERSION 1)
add_library(kyedid SHARED ${edidcode})
set_target_properties(kyedid PROPERTIES VERSION 2.0.0 SOVERSION 1)
add_library(kyfan SHARED ${fancode})
set_target_properties(kyfan PROPERTIES VERSION 2.0.0 SOVERSION 1)
add_library(kyhwinfo SHARED ${hwinfocode})
set_target_properties(kyhwinfo PROPERTIES VERSION 2.0.0 SOVERSION 1)
add_library(kyprinter SHARED ${printercode})
set_target_properties(kyprinter PROPERTIES VERSION 2.0.0 SOVERSION 1)
add_library(kyusb SHARED ${usbcode})
set_target_properties(kyusb PROPERTIES VERSION 2.0.0 SOVERSION 1)
add_executable(kync-test test/kync-test.c)
add_executable(kycpu-test test/kycpu-test.c)
add_executable(kyprinterlist-test test/kyprinterlist-test.c)
@ -18,23 +76,48 @@ add_executable(kybluetooth-test test/kybluetooth-test.c)
add_executable(kyfan-test test/kyfan-test.c)
add_executable(kyhw-test test/kyhw-test.c)
#
target_link_libraries(kyhw kylog kyconf pthread systemd cups curl udev X11 Xrandr bluetooth sensors hd pci gobject-2.0 dbus-glib-1 ${GLIB_LIBRARIES})
target_link_libraries(kyprinterprint-test kyhw)
target_link_libraries(kyprinterlist-test kyhw)
target_link_libraries(kyhw kylog kyconf pthread systemd ${GLIB_LIBRARIES})
target_link_libraries(kybluetooth bluetooth hd gobject-2.0)
target_link_libraries(kyedid kylog m X11 Xrandr hd)
target_link_libraries(kyfan sensors)
target_link_libraries(kyhwinfo kylog hd pci dbus-glib-1)
target_link_libraries(kyprinter cups curl)
target_link_libraries(kyusb kylog udev)
# target_link_libraries(kyhw kylog kyconf pthread systemd cups curl udev X11 Xrandr bluetooth sensors hd pci gobject-2.0 dbus-glib-1 ${GLIB_LIBRARIES})
target_link_libraries(kyprinterprint-test kyprinter)
target_link_libraries(kyprinterlist-test kyprinter)
target_link_libraries(kync-test kyhw)
target_link_libraries(kycpu-test kyhw)
target_link_libraries(kyusb-test kyhw)
target_link_libraries(kyusb-test kyusb)
target_link_libraries(kybios-test kyhw)
target_link_libraries(kyboard-test kyhw)
target_link_libraries(kydisplay-test kyhw)
target_link_libraries(kyedid-test kyhw)
target_link_libraries(kybluetooth-test kyhw)
target_link_libraries(kyfan-test kyhw)
target_link_libraries(kyhw-test kyhw)
target_link_libraries(kyedid-test kyedid)
target_link_libraries(kybluetooth-test kybluetooth)
target_link_libraries(kyfan-test kyfan)
target_link_libraries(kyhw-test kyhwinfo)
install(TARGETS kyhw
DESTINATION lib/kysdk/kysdk-system)
install(TARGETS kybluetooth
DESTINATION lib/kysdk/kysdk-system)
install(TARGETS kyedid
DESTINATION lib/kysdk/kysdk-system)
install(TARGETS kyfan
DESTINATION lib/kysdk/kysdk-system)
install(TARGETS kyhwinfo
DESTINATION lib/kysdk/kysdk-system)
install(TARGETS kyprinter
DESTINATION lib/kysdk/kysdk-system)
install(TARGETS kyusb
DESTINATION lib/kysdk/kysdk-system)
install(FILES libkync.h
DESTINATION include/kysdk/kysdk-system)

View File

@ -13,6 +13,11 @@
#include "libkyedid.h"
#include "hd.h"
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
static int edid_lines = 0;
// static int claims_one_point_oh = 0;
@ -53,6 +58,69 @@ int verify_file(char *pFileName)
}
}
char *cmd_exec(char *file)
{
char *res = (char *)malloc(sizeof(char) * 128);
memset(res, 0, 128);
int fd[2];
if (pipe(fd) == -1) {
free(res);
return NULL;
}
pid_t pid = fork();
if (pid == -1) {
free(res);
return NULL;
}
if (pid == 0) {
close(fd[0]); // 关闭读取端
dup2(fd[1], STDOUT_FILENO); // 将管道写入端连接到标准输出
// 使用execve执行所需的命令例如
char* args[] = {"edid-decode", file, NULL};
execve("/bin/edid-decode", args, NULL);
// 如果execve执行失败需要打印错误信息并退出
perror("Failed to execute command");
exit(1);
} else {
close(fd[1]); // 关闭写入端
char buffer[1024];
const char* targetLine1 = "Display Product Name"; // 要匹配的目标行
const char* targetLine2 = "Alphanumeric Data String"; // 要匹配的目标行
FILE* fp = fdopen(fd[0], "r"); // 将读取端转换为文件指针
char *val = get_val_from_file(fp, targetLine1);
if(!val)
{
char *value = get_val_from_file(fp, targetLine2);
if(!value)
{
free(res);
return NULL;
}
else{
strcpy(res, value);
free(value);
}
}
else{
strcpy(res, val);
free(val);
}
fclose(fp); // 关闭文件指针
// 等待子进程退出并获取退出状态
int status;
waitpid(pid, &status, 0);
}
return res;
}
void kdk_edid(char *name)
{
char edid_text[2048] = "\0";
@ -846,15 +914,18 @@ char *kdk_edid_get_model(char *name)
char *str_model = get_val_from_file(fp, "Alphanumeric Data String");
if(!str_model)
{
free(edid_text);
goto err_out;
}
else{
strcpy(model, str_model);
}
free(str_model);
}
else{
strcpy(model, edid_text);
}
free(edid_text);
if(strlen(model) == 0)
{
@ -864,66 +935,52 @@ char *kdk_edid_get_model(char *name)
pclose(fp);
return model;
}
sprintf(str_path, "edid-decode %s", path);
FILE *fp = popen(str_path, "r");
if(!fp)
char *cmd_val = cmd_exec(path);
if(!cmd_val)
{
goto err_out;
}
edid_text = get_val_from_file(fp, "Display Product Name");
if(!edid_text)
{
char *str_model = get_val_from_file(fp, "Alphanumeric Data String");
if(!str_model)
hd_data_t *hd_data;
hd_data = (hd_data_t *)calloc(1, sizeof *hd_data);
if(!hd_data)
{
hd_data_t *hd_data;
hd_data = (hd_data_t *)calloc(1, sizeof *hd_data);
if(!hd_data)
{
goto err_out;
}
char src_model[128] = "\0";
memset(src_model, 0, 128);
goto err_out;
}
char src_model[128] = "\0";
memset(src_model, 0, 128);
hd_data->progress = NULL;
hd_data->debug = ~(HD_DEB_DRIVER_INFO | HD_DEB_HDDB);
hd_data->progress = NULL;
hd_data->debug = ~(HD_DEB_DRIVER_INFO | HD_DEB_HDDB);
hd_t *hd, *hd0;
hd0 = hd_list(hd_data, hw_monitor, 1, NULL);
for (hd = hd0; hd; hd = hd->next)
hd_t *hd, *hd0;
hd0 = hd_list(hd_data, hw_monitor, 1, NULL);
for (hd = hd0; hd; hd = hd->next)
{
if(hd->model)
{
if(hd->model)
{
strcpy(src_model, hd->model);
}
}
free(hd_data);
if(strlen(src_model) == 0)
{
goto err_out;
}
else{
strcpy(model, src_model);
strcpy(src_model, hd->model);
}
}
free(hd_data);
if(strlen(src_model) == 0)
{
goto err_out;
}
else{
strcpy(model, str_model);
strcpy(model, src_model);
}
}
else{
strcpy(model, edid_text);
strcpy(model, cmd_val);
free(cmd_val);
}
if(strlen(model) == 0)
{
goto err_out;
}
strstripspace(model);
pclose(fp);
return model;
err_out:
free(model);
pclose(fp);
return NULL;
}

View File

@ -570,3 +570,15 @@ int kdk_printer_get_job_status(const char *printername, int jobid)
return state;
}
inline void kdk_printer_freeall(char **list)
{
if (! list)
return;
size_t index = 0;
while (list[index])
{
free(list[index]);
index ++;
}
free(list);
}

View File

@ -254,6 +254,13 @@ extern int kdk_printer_get_job_status(const char *printername, int jobid);
*/
extern char* kdk_printer_get_filename(const char *url);
/**
* @brief
*
* @param ptr
*/
extern inline void kdk_printer_freeall(char **ptr);
#ifdef __cplusplus
}
#endif

View File

@ -1,5 +1,6 @@
#include "stdio.h"
#include "../libkybios.h"
#include <stdlib.h>
int main()
{
char *vendor = kdk_bios_get_vendor();

View File

@ -1,4 +1,4 @@
#include "libkync.h"
#include "../libkync.h"
#include <stdio.h>
#include <stdlib.h>

View File

@ -1,5 +1,4 @@
#include "../libkyprinter.h"
#include "../libkync.h"
#include <stdio.h>
int main()
@ -13,7 +12,7 @@ int main()
printf("%zd: %s , %d\n", index + 1, printers[index], status);
index++;
}
kdk_nc_freeall(printers);
kdk_printer_freeall(printers);
//获取可用打印机列表
index = 0;
char **available_printers = kdk_printer_get_available_list();
@ -23,7 +22,7 @@ int main()
printf("%zd: %s , %d\n", index + 1, available_printers[index], status);
index++;
}
kdk_nc_freeall(available_printers);
kdk_printer_freeall(available_printers);
return 0;
}

View File

@ -1,5 +1,4 @@
#include "../libkyprinter.h"
#include "../libkync.h"
#include <stdio.h>
int main()
@ -45,6 +44,6 @@ int main()
index++;
free(filename);
}
kdk_nc_freeall(printers);
kdk_printer_freeall(printers);
return 0;
}

View File

@ -7,7 +7,7 @@ find_package(Qt5 COMPONENTS Core DBus REQUIRED)
include_directories(${Qt5Core_INCLUDE_DIRS})
include_directories(${Qt5DBus_INCLUDE_DIRS})
ADD_EXECUTABLE(kySdkDbus kysdkdbus.cpp main.cpp)
target_link_libraries(kySdkDbus kysysinfo kyhw kydiskinfo kyrtinfo kynetinfo kyrealtime kydiskinfo kylocation kypackage Qt5::Core Qt5::DBus)
target_link_libraries(kySdkDbus kysysinfo kyhw kyprinter kyusb kydiskinfo kyrtinfo kynetinfo kyrealtime kydiskinfo kylocation kypackage Qt5::Core Qt5::DBus)
ADD_EXECUTABLE(kySdkDbus-session kysdkrest.cpp main_rest.cpp)

View File

@ -763,9 +763,10 @@ char **kdk_net_get_up_port()
if (flag)
{
index++;
result = (char **)realloc(result, sizeof(char *) * (index + 1 + 1)); // 以NULL结尾
if (!result)
char **tmp = (char **)realloc(result, sizeof(char *) * (index + 1 + 1)); // 以NULL结尾
if (!tmp)
goto error;
result = tmp;
result[index] = (char *)calloc(1, 8);
if (!result[index])
goto error;
@ -812,9 +813,14 @@ char **kdk_net_get_up_port()
return result;
error:
for (int i = 0; result[i]; i++)
// for (int i = 0; result[i]; i++)
// {
// free(result[i]);
// }
while (index)
{
free(result[i]);
free(result[index - 1]);
index--;
}
free(result);
result = NULL;

View File

@ -7,6 +7,9 @@ set_target_properties(kyrealtime PROPERTIES VERSION 2.0.0 SOVERSION 1)
add_executable(kyrealtime-test test/kyrealtime-test.c)
target_link_libraries(kyrealtime-test kyrealtime)
add_executable(realtimeinfo-test test/realtimeinfo-test.cpp)
target_link_libraries(realtimeinfo-test kyrealtime)
install(TARGETS kyrealtime
DESTINATION lib/kysdk/kysdk-system)

View File

@ -0,0 +1,41 @@
#include "libkyrealtimeinfo.h"
float (*net_speed)(const char *) = kdk_real_get_net_speed;
double (*cpu_temperature)() = kdk_real_get_cpu_temperature;
int (*disk_temperature)(const char *name) = kdk_real_get_disk_temperature;
int (*disk_rate)(const char *name) = kdk_real_get_disk_rate;
float (*if_speed)(const char *nc) = kdk_real_get_if_speed;
RealTimeInfo::RealTimeInfo()
{
}
float RealTimeInfo::kdk_real_get_io_speed()
{
return 0;
}
float RealTimeInfo::kdk_real_get_net_speed(const char *nc)
{
return net_speed(nc);
}
float RealTimeInfo::kdk_real_get_if_speed(const char *nc)
{
return if_speed(nc);
}
float RealTimeInfo::kdk_real_get_cpu_temperature()
{
return cpu_temperature();
}
float RealTimeInfo::kdk_real_get_disk_temperature(const char *name)
{
return disk_temperature(name);
}
int RealTimeInfo::kdk_real_get_disk_rate(const char *name)
{
return disk_rate(name);
}

View File

@ -1,7 +1,20 @@
#ifndef LIBKYREALTIMEINFO_H
#define LIBKYREALTIMEINFO_H
#if __cplusplus
/**
* @file libkyrtinfo.h
* @author liuyunhe (liuyunhe@kylinos.cn)
* @brief
* @version 0.1
* @date 2023-2-17
*
* @copyright Copyright (c) 2021
* @defgroup
* @{
*
*/
#ifdef __cplusplus
extern "C"
{
#endif
@ -45,8 +58,29 @@ extern int kdk_real_get_disk_rate(const char *name);
*/
extern float kdk_real_get_if_speed(const char *nc);
#if __cplusplus
#ifdef __cplusplus
}
#endif
/***********************************
* c++
* 使c接口
************************************/
#ifdef __cplusplus
#define REAL_TIME_EXPORT __attribute__((visibility("default")))
class REAL_TIME_EXPORT RealTimeInfo
{
public:
RealTimeInfo();
public:
float kdk_real_get_io_speed();
float kdk_real_get_net_speed(const char *nc);
float kdk_real_get_if_speed(const char *nc);
float kdk_real_get_cpu_temperature();
float kdk_real_get_disk_temperature(const char *name);
int kdk_real_get_disk_rate(const char *name);
};
#endif
#endif // LIBKYREALTIMEINFO_H

View File

@ -1,17 +1,17 @@
#include "stdio.h"
#include "../libkyrealtimeinfo.h"
int main(int argc, char *argv[])
int main()
{
if(argc < 3)
{
printf("./kyrealtime-test <网卡名> <磁盘名>\n");
return 0;
}
printf("netSpeed : %f\n", kdk_real_get_net_speed(argv[argc - 2]));
// if(argc < 3)
// {
// printf("./kyrealtime-test <网卡名> <磁盘名>\n");
// return 0;
// }
printf("netSpeed : %f\n", kdk_real_get_net_speed("enaftgm1i0"));
printf("cpuTemp: %f\n", kdk_real_get_cpu_temperature());
printf("diskTemp : %d\n", kdk_real_get_disk_temperature(argv[argc - 1]));
printf("diskRate : %d\n", kdk_real_get_disk_rate(argv[argc -1]));
printf("ifnetSpeed : %f\n", kdk_real_get_if_speed(argv[argc - 2]));
printf("diskTemp : %d\n", kdk_real_get_disk_temperature("/dev/nvme0n1"));
printf("diskRate : %d\n", kdk_real_get_disk_rate("/dev/nvme0n1"));
printf("ifnetSpeed : %f\n", kdk_real_get_if_speed("enaftgm1i0"));
return 0;
}

View File

@ -0,0 +1,13 @@
#include "../libkyrealtimeinfo.h"
#include <iostream>
int main()
{
RealTimeInfo info;
std::cout << "Of speed:" << info.kdk_real_get_net_speed("enp3s0") << std::endl;
std::cout << "If speed:" << info.kdk_real_get_if_speed("enp3s0") << std::endl;
std::cout << "cpu Temp:" << info.kdk_real_get_cpu_temperature() << std::endl;
std::cout << "Disk Temp:" << info.kdk_real_get_disk_temperature("/dev/sda") << std::endl;
std::cout << "Disk rate:" << info.kdk_real_get_disk_rate("/dev/sda") << std::endl;
return 0;
}

View File

@ -16,6 +16,7 @@
#include <utmp.h>
#include <time.h>
#include "pci/pci.h"
#include <locale.h>
#define SAFE_FREE(x) if (x) {free(x); x = NULL;}
#define KYLIN_ACTIVATION_DBUS_ADDRESS "org.freedesktop.activation"
@ -31,7 +32,7 @@
#define BUF_SIZE 1024
#define LOCALEDIR "/usr/share/locale/"
#define GETTEXT_PACKAGE "kysdk_system_version"
#define GETTEXT_PACKAGE "kysdk-sysinfo"
struct device
{
@ -108,6 +109,9 @@ char* kdk_system_get_systemName()
char* kdk_system_get_version(bool verbose)
{
setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
textdomain (GETTEXT_PACKAGE);
char *sysversion = NULL;
if (verbose)
{
@ -126,18 +130,58 @@ char* kdk_system_get_version(bool verbose)
}
else
{
FILE *fp = fopen("/etc/os-release", "r");
if (!fp)
return NULL;
sysversion = get_val_from_file(fp, "VERSION");
if (!sysversion)
char *version_us =NULL;
char *version = (char *)malloc(sizeof(char) * 128);
if(!version)
{
fclose(fp);
return NULL;
}
strstrip(sysversion, '\"');
memset(version, 0, 128);
FILE *fp = fopen("/etc/os-release", "r");
if (!fp)
{
free(version);
return NULL;
}
version_us = get_val_from_file(fp, "VERSION_US");
if (!version_us)
{
fclose(fp);
free(version);
return NULL;
}
strstrip(version_us, '\"');
strstrip(version_us, '\n');
strstrip(version_us, '\"');
fclose(fp);
if(strcmp(version_us, "Kylin Linux Desktop V10 (SP1)") == 0)
{
sprintf(version, gettext("Kylin Linux Desktop V10 (SP1)"));
}
free(version_us);
if(strlen(version) == 0)
{
fp = fopen("/etc/os-release", "r");
if (!fp)
{
free(version);
return NULL;
}
sysversion = get_val_from_file(fp, "VERSION");
if (!sysversion)
{
fclose(fp);
free(version);
return NULL;
}
strstrip(sysversion, '\"');
fclose(fp);
free(version);
}
else{
return version;
}
}
strstrip(sysversion, '\n');
strstrip(sysversion, '\"');

View File

@ -520,22 +520,51 @@ void *actionDateChanged(void *ptr)
DBusConnection *conn = NULL;
conn = ptr;
char strpath[128] = "\0";
char canonical_filename[100] = "\0";
char filename[100] = "\0";
char fname[100] = "\0";
int fd = inotify_init();
char *homeDir = NULL;
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(strpath, "%s/.config/kydate/", homeDir);
if (!realpath(homeDir, fname) || !verify_file(fname))
{
return -1;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", fname);
sprintf(strpath, "%s/.config/kydate/", fname);
if (access(strpath, F_OK) != 0)
{
int status = mkdir(strpath, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
if (status != 0) {
return NULL;
if (!realpath(strpath, filename))
{
if(!verify_file(filename))
{
close(fd);
return NULL;
}
int status = mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
if (status != 0) {
close(fd);
return NULL;
}
}
// if(!realpath(path, canonical_filename) || !verify_file(canonical_filename))
// {
// close(fd);
// return NULL;
// }
if (!realpath(path, canonical_filename))
{
if(!verify_file(canonical_filename))
{
close(fd);
return NULL;
}
}
FILE *fp = fopen(path, "w");
FILE *fp = fopen(canonical_filename, "w");
if(!fp)
{
close(fd);
@ -546,7 +575,20 @@ void *actionDateChanged(void *ptr)
else{
if(access(path, F_OK) != 0)
{
FILE *fp = fopen(path, "w");
// if(!realpath(path, canonical_filename) || !verify_file(canonical_filename))
// {
// close(fd);
// return NULL;
// }
if (!realpath(path, canonical_filename))
{
if(!verify_file(canonical_filename))
{
close(fd);
return NULL;
}
}
FILE *fp = fopen(canonical_filename, "w");
if(!fp)
{
close(fd);
@ -582,9 +624,14 @@ int monitorSystemDateChange(int fd){
char *homeDir = NULL;
char *realpath_res = NULL;
char filename[100] = "\0";
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
return -1;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
char buf[BUFSIZ];
buf[sizeof(buf) - 1] = 0;

View File

@ -313,6 +313,7 @@ int kdk_system_set_dateformat(char *date)
int status;
int mark = 0;
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *env_time = getenv("LC_TIME");
if(!env_time)
@ -329,7 +330,11 @@ int kdk_system_set_dateformat(char *date)
}
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
return -1;
}
sprintf(path, "%s/.config/kydate/", filename);
if (!realpath(path, canonical_filename))
{
if(!verify_file(canonical_filename))
@ -343,7 +348,7 @@ int kdk_system_set_dateformat(char *date)
}
memset(path, 0, sizeof(path));
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
char tpath[100] = {0};
@ -451,9 +456,14 @@ int kdk_system_set_24_timeformat()
int status = 0;
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
return -1;
}
sprintf(path, "%s/.config/kydate/", filename);
if (!realpath(path, canonical_filename))
{
@ -468,7 +478,7 @@ int kdk_system_set_24_timeformat()
}
memset(path, 0, sizeof(path));
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
GKeyFile *config = g_key_file_new();
GError *gerr = NULL;
@ -494,9 +504,14 @@ int kdk_system_set_12_timeformat()
int status = 0;
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
return -1;
}
sprintf(path, "%s/.config/kydate/", filename);
if (!realpath(path, canonical_filename))
{
@ -511,7 +526,7 @@ int kdk_system_set_12_timeformat()
}
memset(path, 0, sizeof(path));
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
GKeyFile *config = g_key_file_new();
char tpath[100] = {0};
@ -538,10 +553,16 @@ char* kdk_system_get_now_dateformat()
char *value = NULL;
char *tvalue = malloc(sizeof(char) * 128);
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
homeDir = getenv("HOME");
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(tvalue);
return NULL;
}
char *lang = getenv("LANG");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -602,10 +623,16 @@ char* kdk_system_get_now_timeformat()
char value[64] = "\0";
char *tvalue = malloc(sizeof(char) * 128);
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
homeDir = getenv("HOME");
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(tvalue);
return NULL;
}
char *lang = getenv("LANG");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -679,6 +706,7 @@ kdk_dateinfo *kdk_system_tran_dateformat(struct tm *ptr)
char tmpe[64];
char stmp[64];
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *env_time = getenv("LC_TIME");
if(!env_time)
@ -687,7 +715,13 @@ kdk_dateinfo *kdk_system_tran_dateformat(struct tm *ptr)
}
char *lang = getenv("LANG");
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(value);
free(tvalue);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
int ptr_year = ptr->tm_year;
ptr->tm_year = ptr->tm_year - 1900;
int ptr_mon = ptr->tm_mon;
@ -888,10 +922,17 @@ char* kdk_system_nowtime()
char *value = (char*)malloc(sizeof(char) * 128);
GKeyFile *config = g_key_file_new();
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *lang = getenv("LANG");
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(value);
free(tvalue);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -979,6 +1020,7 @@ char* kdk_system_nowdate()
char *value = malloc(sizeof(char) * 64);
GKeyFile *config = g_key_file_new();
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *env_time = getenv("LC_TIME");
if(!env_time)
@ -987,7 +1029,13 @@ char* kdk_system_nowdate()
}
char *lang = getenv("LANG");
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(value);
free(tvalue);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -1117,7 +1165,32 @@ char* kdk_system_shortweek()
p = localtime(&current);
if(strstr(lang, "en_US"))
{
strftime(tmpe, sizeof(tmpe), "%a", localtime(&current));
switch (p->tm_wday)
{
case 0:
strcpy(tmpe, "Sun");
break;
case 1:
strcpy(tmpe, "Mon");
break;
case 2:
strcpy(tmpe, "Tue");
break;
case 3:
strcpy(tmpe, "Wed");
break;
case 4:
strcpy(tmpe, "Thu");
break;
case 5:
strcpy(tmpe, "Fri");
break;
case 6:
strcpy(tmpe, "Sat");
break;
default:
break;
}
}else{
switch (p->tm_wday)
{
@ -1304,10 +1377,17 @@ char* kdk_system_second()
char *value = (char *)malloc(sizeof(char) * 64);
GKeyFile *config = g_key_file_new();
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *lang = getenv("LANG");
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(value);
free(tvalue);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -1535,6 +1615,7 @@ char* kdk_system_gjx_time(char *date)
char *value = (char*)malloc(sizeof(char) * 100);
GKeyFile *config = g_key_file_new();
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *env_time = getenv("LC_TIME");
if(!env_time)
@ -1543,7 +1624,13 @@ char* kdk_system_gjx_time(char *date)
}
char *lang = getenv("LANG");
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(value);
free(tvalue);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -1725,9 +1812,14 @@ int kdk_system_set_long_dateformat(char *format)
GError* gerr = NULL;
int status = 0;
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
return -1;
}
sprintf(path, "%s/.config/kydate/", filename);
if (!realpath(path, canonical_filename))
{
@ -1742,7 +1834,7 @@ int kdk_system_set_long_dateformat(char *format)
}
memset(path, 0, sizeof(path));
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
char tpath[100] = {0};
@ -1822,6 +1914,7 @@ int kdk_system_set_short_dateformat(char *format)
int status = 0;
int mark = 0;
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
int sdate = 0;
int len = 0;
@ -1840,22 +1933,26 @@ int kdk_system_set_short_dateformat(char *format)
}
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/", homeDir);
if (!realpath(path, canonical_filename))
if (!realpath(homeDir, canonical_filename) || !verify_file(canonical_filename))
{
if(!verify_file(canonical_filename))
return -1;
}
sprintf(path, "%s/.config/kydate/", canonical_filename);
if (!realpath(path, filename))
{
if(!verify_file(filename))
{
return -1;
}
status = mkdir(canonical_filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
status = mkdir(filename, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
if (status != 0) {
return -1;
}
}
memset(path, 0, sizeof(path));
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", canonical_filename);
char tpath[100] = {0};
char *home = getlogin();
@ -1957,10 +2054,16 @@ char* kdk_system_get_longformat_date()
}
GKeyFile *config = g_key_file_new();
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *lang = getenv("LANG");
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(value);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -2038,6 +2141,7 @@ char* kdk_system_get_shortformat_date()
}
GKeyFile *config = g_key_file_new();
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *env_time = getenv("LC_TIME");
if(!env_time)
@ -2045,7 +2149,12 @@ char* kdk_system_get_shortformat_date()
env_time = " ";
}
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(value);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -2155,10 +2264,16 @@ char* kdk_system_get_longformat()
return NULL;
}
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
homeDir = getenv("HOME");
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(tvalue);
return NULL;
}
char *lang = getenv("LANG");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -2201,6 +2316,7 @@ char* kdk_system_get_shortformat()
return NULL;
}
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *env_time = getenv("LC_TIME");
if(!env_time)
@ -2209,8 +2325,13 @@ char* kdk_system_get_shortformat()
}
homeDir = getenv("HOME");
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(tvalue);
return NULL;
}
char *lang = getenv("LANG");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
if (access(path, F_OK) == 0)
{
@ -2269,10 +2390,16 @@ char* kdk_system_longformat_transform(struct tm *ptr)
}
char tmp[64];
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *lang = getenv("LANG");
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(tvalue);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
int ptr_year = ptr->tm_year;
ptr->tm_year = ptr->tm_year - 1900;
int ptr_mon = ptr->tm_mon;
@ -2346,6 +2473,7 @@ char* kdk_system_shortformat_transform(struct tm *ptr)
char *tvalue = (char *)malloc(sizeof(char) * 64);
char tmp[64];
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *env_time = getenv("LC_TIME");
if(!env_time)
@ -2353,7 +2481,12 @@ char* kdk_system_shortformat_transform(struct tm *ptr)
env_time = " ";
}
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, filename) || !verify_file(filename))
{
free(tvalue);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", filename);
int ptr_year = ptr->tm_year;
ptr->tm_year = ptr->tm_year - 1900;
int ptr_mon = ptr->tm_mon;
@ -2600,6 +2733,7 @@ kdk_timeinfo *kdk_system_timeformat_transform(struct tm *ptr)
char tmpe[64];
char stmp[64];
char canonical_filename[PATH_MAX] = "\0";
char filename[PATH_MAX] = "\0";
char *env_time = getenv("LC_TIME");
if(!env_time)
@ -2608,11 +2742,17 @@ kdk_timeinfo *kdk_system_timeformat_transform(struct tm *ptr)
}
char *lang = getenv("LANG");
homeDir = getenv("HOME");
sprintf(path, "%s/.config/kydate/dateformat.conf", homeDir);
if (!realpath(homeDir, canonical_filename) || !verify_file(canonical_filename))
{
free(tvalue);
return NULL;
}
sprintf(path, "%s/.config/kydate/dateformat.conf", canonical_filename);
// memset(canonical_filename, 0, sizeof(canonical_filename));
if (access(path, F_OK) == 0)
{
if (!realpath(path, canonical_filename) || !verify_file(canonical_filename))
if (!realpath(path, filename) || !verify_file(filename))
{
free(tvalue);
return NULL;
@ -2621,13 +2761,13 @@ kdk_timeinfo *kdk_system_timeformat_transform(struct tm *ptr)
GKeyFile *config = g_key_file_new();
kdk_timeinfo *res = (kdk_timeinfo *)calloc(1, sizeof(kdk_timeinfo));
FILE *fp = fopen(canonical_filename, "r");
FILE *fp = fopen(filename, "r");
if(!fp)
{
strcpy(tvalue, "24小时制");
}
else{
g_key_file_load_from_file(config, canonical_filename, 0, NULL);
g_key_file_load_from_file(config, filename, 0, NULL);
char *gkey = g_key_file_get_string(config, "DATEFORMAT", "TIME_FORMAT", NULL);
if(gkey == NULL)
{

View File

@ -171,8 +171,9 @@ int monitorSystemTimeChange()
return -1;
}
u_int64_t dep;
ssize_t ret = read(fd, &dep, sizeof(u_int64_t));
// u_int64_t dep;
char dep[8] = "\0";
ssize_t ret = read(fd, dep, sizeof(dep));
close(fd);
if (ret == -1 && errno == ECANCELED)
return 1;