|
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