LTP Linux Test Project

   好久没有写博客了,主要是工作太杂了,很多东西内耗精力,这不,又出现一个内核问题,在LTP Linux Test Project 工具的时候,发现add-key 出现了问题。然后决定试一下这个syscall。

代码如下:

int  main(int argc, char *argv[]) {
    key_serial_t key;
    if (argc != 4) {
        fprintf(stderr, "Usage: %s type description payload\n",argv[0]);
        exit(EXIT_FAILURE);

    }
    key = add_key(argv[1], argv[2], argv[3], strlen(argv[3]), KEY_SPEC_SESSION_KEYRING);
    if (key == -1) {
        perror("add_key");
        exit(EXIT_FAILURE);
    }
    printf("Key ID is %lx\n", (long) key);
    exit(EXIT_SUCCESS);

}

然后:

gcc add_key.c -o add_key

发现报错:

fatal error: keyutils.h: No such file or directory
 #include 

原来是内核没有,安装工具libkeyutils-dev、keyutils

然后还是有错:

undefined reference to `add_key'

肯定是没有找到库,需要编译的时候加参数,比如-lpthread,这下可为难了,什么参数啊,全网找个边也没有,后来在一堆错误里,找到了这个:

gcc add_key.c -o add_key -lkeyutils

写下来,让大家少走弯路吧。

你可能感兴趣的:(LTP Linux Test Project)