2009-12-09 10 views
5

Ho implementato una coda messaggi POSIX. Sul lato ascoltatore, sto aprendo la coda in questo modo:È possibile utilizzare code di messaggi POSIX su Linux?

mqdes = mq_open(s_mailbox_name.c_str(), O_RDONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, NULL);

Sul lato mittente, sto aprendo la coda in questo modo:

mqdes = mq_open(m_s_mailbox_name.c_str(), O_WRONLY);

la stringa è lo stesso su entrambi, chiamiamolo /foobox

Ora, quando eseguo sia il mittente che il destinatario come lo stesso utente sulla scatola, tutto funziona perfettamente. Tuttavia se il mittente e il destinatario sono 2 utenti diversi, il ricevitore non può aprire la coda. Penserei che questo non sarebbe un problema perché sto aprendo la coda come 0777 sopra così tutti possono RWX.

C'è qualcosa di ovvio che sto sbagliando? O è questo non è possibile (Si prega di non lasciare che sia questo uno)

Grazie

risposta

6

Controlla umask.

Da man mq_open: "Le impostazioni delle autorizzazioni sono mascherate rispetto al processo umask."

+2

Sei il mio eroe, grazie: D, finalmente posso lasciare il lavoro ora. – Salgar

+0

Prego. Buona serata. –

Problemi correlati