Реализация атрибутов ls ACL - PullRequest
0 голосов
/ 06 июля 2018

Я пишу реализацию ls.

Я уже сделал с атрибутом "@", но у меня есть другая проблема. Как я могу получить файл имеет атрибут "+" или нет? Возможно, это tcgetattr, но я не могу точно понять, как взять то, что мне нужно. Человек слишком мал для этой функции, и я не нашел там, как это сделать. Мне просто нужно получить True, если есть атрибут "+".

Также я нашел структуру, у которой, вероятно, есть способ сделать это, но что я должен сравнить?

struct termios {
    tcflag_t    c_iflag;    /* input flags */
    tcflag_t    c_oflag;    /* output flags */
    tcflag_t    c_cflag;    /* control flags */
    tcflag_t    c_lflag;    /* local flags */
    cc_t        c_cc[NCCS]; /* control chars */
    speed_t     c_ispeed;   /* input speed */
    speed_t     c_ospeed;   /* output speed */
};

введите описание изображения здесь

1 Ответ

0 голосов
/ 06 июля 2018

Найденное решение в # include <sys/acl.h>, непосредственно функция acl = acl_get_link_np(path, ACL_TYPE_EXTENDED);. Если это не NULL - есть атрибут. Не забудьте почистить память acl_free(acl;)

...