kdk_package_get_packagelist3
获取系统中所有包列表
Usage
#include <libkypackages.h> extern kdk_package_list* kdk_package_get_packagelist(); Link with -lkypackage.
Detailed Description
The main function of the interface is to obtain a list of all packages in the system.
Return value
On success, returns a pointer to a kdk_package_list structure containing gateway information.
The kdk_package_list structure is defined in <libkypackages.h> as follows:
typedef struct {
unsigned int nums;
kdk_package_t **list;
}kdk_package_list;
typedef struct _kdk_package_t{
char *name; // 包名
char *version; // 版本号
char *section; // 包类型
char *status; // 状态
unsigned long size_kb; // 包大小
struct _kdk_package_t **depends; // 依赖包
}kdk_package_t;
On error, return NULL.
Examples
#include "libkypackages.h"
#include <stdio.h>
static void print_package(kdk_package_t *package)
{
printf("包名:%s ", package->name);
printf("版本号:%s ", package->version);
printf("包类型:%s ", package->section);
printf("包状态:%s ", package->status);
printf("包大小:%lu0, package->size_kb);
}
int main()
{
kdk_package_list *list = kdk_package_get_packagelist();
printf("系统中一共%u个软件包0, list->nums);
for (size_t i = 0; i < list->nums; i ++)
{
print_package(list->list[i]);
}
kdk_package_free_packagelist(list);
printf("Evolution是否安装:%s0, kdk_package_is_installed("evolution", NULL) == 1 ? "是" : "否");
char *version = kdk_package_get_version("evolution");
printf("Evolution版本号:%s0, version);
free(version);
return 0;
}