|
2 | 2 | //! |
3 | 3 | //! # Example |
4 | 4 | //! |
5 | | -// no_run because a kernel module may be required. |
6 | | -//! ```no_run |
| 5 | +//! ``` |
7 | 6 | //! # use std::ffi::CString; |
8 | 7 | //! # use nix::mqueue::*; |
9 | 8 | //! use nix::sys::stat::Mode; |
10 | 9 | //! |
11 | 10 | //! const MSG_SIZE: mq_attr_member_t = 32; |
12 | | -//! let mq_name= "/a_nix_test_queue"; |
| 11 | +//! let attr = MqAttr::new(0, 10, MSG_SIZE, 0); |
| 12 | +//! let mq_name= "/a_nix_doc_test_queue"; |
13 | 13 | //! |
14 | 14 | //! let oflag0 = MQ_OFlag::O_CREAT | MQ_OFlag::O_WRONLY; |
15 | 15 | //! let mode = Mode::S_IWUSR | Mode::S_IRUSR | Mode::S_IRGRP | Mode::S_IROTH; |
16 | | -//! let mqd0 = mq_open(mq_name, oflag0, mode, None).unwrap(); |
| 16 | +//! let mqd0 = mq_open(mq_name, oflag0, mode, Some(&attr)).unwrap(); |
17 | 17 | //! let msg_to_send = b"msg_1"; |
18 | 18 | //! mq_send(&mqd0, msg_to_send, 1).unwrap(); |
19 | 19 | //! |
20 | 20 | //! let oflag1 = MQ_OFlag::O_CREAT | MQ_OFlag::O_RDONLY; |
21 | | -//! let mqd1 = mq_open(mq_name, oflag1, mode, None).unwrap(); |
22 | | -//! let mut buf = [0u8; 32]; |
| 21 | +//! let mqd1 = mq_open(mq_name, oflag1, mode, Some(&attr)).unwrap(); |
| 22 | +//! let mut buf = [0u8; MSG_SIZE as usize]; |
23 | 23 | //! let mut prio = 0u32; |
24 | 24 | //! let len = mq_receive(&mqd1, &mut buf, &mut prio).unwrap(); |
25 | 25 | //! assert_eq!(prio, 1); |
@@ -100,7 +100,9 @@ impl MqAttr { |
100 | 100 | /// |
101 | 101 | /// - `mq_flags`: Either `0` or `O_NONBLOCK`. |
102 | 102 | /// - `mq_maxmsg`: Maximum number of messages on the queue. |
| 103 | + /// The maximum value allowed by the system can be obtained from `/proc/sys/fs/mqueue/msg_max`. |
103 | 104 | /// - `mq_msgsize`: Maximum message size in bytes. |
| 105 | + /// The maximum value allowed by the system can be obtained from `/proc/sys/fs/mqueue/msgsize_max`. |
104 | 106 | /// - `mq_curmsgs`: Number of messages currently in the queue. |
105 | 107 | pub fn new( |
106 | 108 | mq_flags: mq_attr_member_t, |
|
0 commit comments