17-习题
52.11 习题
52-1. 修改程序清单52-5中的程序(pmsg_receive.c)使之在命令行上接收一个超时时间(相对秒数)并使用mq_timedreceive()来替换mq_receive()。
52-2. 使用POSIX消息队列记录44.8节中的客户端-服务器应用程序的顺序号。
52-3. 重写46.8节中的文件-服务器应用程序使之使用POSIX消息队列来取代System V消息队列。
52-4. 使用POSIX消息队列编写一个简单的聊天程序(类似于talk(1),但没有curses界面)。
52-5. 修改程序清单52-6中的程序(mq_notify_sig.c)来证明通过mq_notify()建立的消息通知只发生一次。这可以通过删除for循环中的mq_notify()调用来完成。
52-6. 使用sigwaitinfo()替换程序清单52-6中的程序(mq_notify_sig.c)对信号处理器的使用。在sigwaitinfo()返回时显示返回的siginfo_t结构中的值。程序如何获取sigwaitinfo()返回的siginfo_t结构中的消息队列描述符呢?
52-7. 在程序清单52-7中buffer是否可以作为全局变量并且只为其分配一次内存(在主程序中)?对你的答案做出解释。