KDK_PACKAGE_GET_PACKAGELIST(3) Library Functions Manual KDK_PACKAGE_GET_PACKAGELIST(3)

kdk_package_get_packagelist - 获取系统中所有包列表

#include <libkypackages.h>

extern kdk_package_list* kdk_package_get_packagelist();

Link with -lkypackage.

The main function of the interface is to obtain a list of all packages in the system.

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.

#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;
}

These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: kdk_package_free_packagelist(), kdk_package_get_version() and kdk_package_is_installed().

kdk_package_free_packagelist(3), kdk_package_get_version(3) and kdk_package_is_installed(3).

Mon Sep 18 2023 Linux Programmer's Manual