Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Аутентификация и авторизация не задача dbus. Ее решает (как минимум раньше решал) policykit который тоже был доступен по dbus. Запрос улетает в сервис через dbus, сервис кидает запрос в полис кит, тот может сразу подтвердить или отказать или кинуть в спрос в агента, агент делает что нужно - например спрашивает подтверждения или пароль рута или пароль юзера и далее подтверждение или отказ кидаются сервису-исполнителю. В большинстве случаев вне десктопа это не нужно
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#define NAMEDPIPE_NAME "/tmp/my_named_pipe"
#define BUFSIZE 50
int main (int argc, char ** argv) {
int fd, len;
char buf[BUFSIZE];
if ( mkfifo(NAMEDPIPE_NAME, 0777) ) {
perror("mkfifo");
return 1;
}
printf("%s is created\n", NAMEDPIPE_NAME);
if ( (fd = open(NAMEDPIPE_NAME, O_RDONLY)) <= 0 ) {
perror("open");
return 1;
}
printf("%s is opened\n", NAMEDPIPE_NAME);
do {
memset(buf, '\0', BUFSIZE);
if ( (len = read(fd, buf, BUFSIZE-1)) <= 0 ) {
perror("read");
close(fd);
remove(NAMEDPIPE_NAME);
return 0;
}
printf("Incomming message (%d): %s\n", len, buf);
} while ( 1 );
}
Знакомство с межпроцессным взаимодействием на Linux