Проблема с realtime очередью

Все о программировании под *nix
atony
Заглянувший
Сообщения: 1
Зарегистрирован: 29 мар 2006, 14:57

Проблема с realtime очередью

Сообщение atony »

Код: Выделить всё

#include <mqueue.h> // определена стуктура mq_attr
#include <errno.h>
mqd_t mqd;
char qname[32] = “/msgq.0”;
struct mq_attr attr; 

attr.mq_maxmsg = 256; // кол-во сообщений в очереди
attr.mq_msgsize = 5; // длина сообщения
// по умолчанию mq_maxmsg = 10, mq_msgsize = 8192
// параметры по умолчанию не подходят! 

if ( mqd = mq_open(qname, O_CREAT | O_RDWR, 0644, &attr) == –1 ){
     perror ("MQ_OPEN");
}

Результат работы : MQ_OPEN: Bad file descriptor
Тоже самое, но без атрибутов, никаких ошибок не выдает
if ( mqd = mq_open(qname, O_CREAT | O_RDWR, 0644, 0) == –1 ){
   perror ("MQ_OPEN");
}
Есть подозрение на то, что у процесса нет прав, так как не под root-ом запускается прога. Попробовали запустить под root-ом все получилось. Вопрос: можно ли изменять непривелигированным пользователям атрибуты очереди ?

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

м... может быть что-то можно сделать ?
что-нить типа dev.rtc.max-user-freq только для интересующего параметра? Если нет - запускать процесс от root, устанавливать нужные параметры и сбрасывать привелегии с помощь setuid
Опыт растет прямо пропорционально выведенному из строя оборудованию

Foxx
Неотъемлемая часть форума
Сообщения: 435
Зарегистрирован: 03 апр 2004, 17:05
Контактная информация:

Сообщение Foxx »

afaik без предварительных попущений со стороны root-а или свистелок типа suid и sudo - нет. Предложу man capabilities - way (linuxcaps имхо то что надо по сабжу).

Ответить