OSDN Git Service

(split) LDP v3.24 -> v3.29 の定型的な変更内容を反映。
[linuxjm/LDP_man-pages.git] / release / man3 / mq_notify.3
index 4c8b9ac..6f939ea 100644 (file)
 .\" Japanese Version Copyright (c) 2006 Akihiro MOTOKI all rights reserved.
 .\" Translated 2006-07-31, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24
+.\" Updated 2010-10-27, Akihiro Motoki, LDP v3.29
 .\"
-.TH MQ_NOTIFY 3 2009-09-15 "Linux" "Linux Programmer's Manual"
+.TH MQ_NOTIFY 3 2010-10-04 "Linux" "Linux Programmer's Manual"
 .SH Ì¾Á°
 mq_notify \- ¥á¥Ã¥»¡¼¥¸ÅþÃå»þ¤ËÄÌÃΤò¹Ô¤¦¤è¤¦ÅÐÏ¿¤¹¤ë
 .SH ½ñ¼°
 .nf
 .B #include <mqueue.h>
 .sp
-.BI "mqd_t mq_notify(mqd_t " mqdes ", const struct sigevent *" notification );
+.BI "int mq_notify(mqd_t " mqdes ", const struct sigevent *" notification );
 .fi
 .sp
 \fI\-lrt\fP ¤Ç¥ê¥ó¥¯¤¹¤ë¡£
@@ -46,42 +47,22 @@ mq_notify \- 
 ÈóƱ´ü¤ÎÄÌÃΠ(notification) ¤ÎÇÛÁ÷¤¬¹Ô¤ï¤ì¤ë¤è¤¦¤ËÅÐÏ¿¤·¤¿¤ê¡¢
 ¤½¤Î²ò½ü¤ò¹Ô¤Ã¤¿¤ê¤Ç¤­¤ë¡£
 
-.I notification
+.I sevp
 °ú¤­¿ô¤Ï
 .I sigevent
 ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
-.I sigevent
-¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ê´¶¤¸¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
-.in +4n
-.nf
-
-union sigval {          /* Data passed with notification */
-    int     sival_int;         /* Integer value */
-    void   *sival_ptr;         /* Pointer value */
-};
-
-struct sigevent {
-    int          sigev_notify; /* Notification method */
-    int          sigev_signo;  /* Notification signal */
-    union sigval sigev_value;  /* Data passed with
-                                  notification */
-    void       (*sigev_notify_function) (union sigval);
-                               /* Function for thread
-                                  notification */
-    void        *sigev_notify_attributes;
-                               /* Thread function attributes */
-};
-.fi
-.in
+¤³¤Î¹½Â¤ÂΤÎÄêµÁ¤È°ìÈÌŪ¤Ê¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï
+.BR sigevent (7)
+¤ò»²¾È¡£
 .PP
-.I notification
+.I sevp
 ¤¬ NULL ¤Ç¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤¢¤ì¤Ð¡¢
 .BR mq_notify ()
 ¤Ï¥á¥Ã¥»¡¼¥¸ÄÌÃΤò¼õ¤±¼è¤ë¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤òÅÐÏ¿¤¹¤ë¡£
-.I notification
+.I sevp
 ¤¬»Ø¤¹
 .I sigevent
-¤Î
+¹½Â¤ÂΤÎ
 .I sigev_notify
 ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤É¤Î¤è¤¦¤ÊÄÌÃΤò¹Ô¤¦¤Î¤«¤ò»ØÄꤹ¤ë¡£
 ¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤ò»ý¤Ä¡£
@@ -94,52 +75,35 @@ struct sigevent {
 .B SIGEV_SIGNAL
 .I sigev_signo
 ¤Ç»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤Æ¡¢¥×¥í¥»¥¹¤ËÄÌÃΤ¹¤ë¡£
-.BR sigaction (2)
-¤Î
-.B SA_SIGINFO
-¥Õ¥é¥°¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÅÐÏ¿¤·¤Æ¤¤¤ë¾ì¹ç¡¢
-¤½¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ç¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÂèÆó°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤ë
+°ìÈÌŪ¤Ê¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï
+.BR sigevent (7)
+¤ò»²¾È¡£
 .I siginfo_t
-¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£
+¹½Â¤ÂΤÎ
 .I si_code
-¤Ë¤Ï
+¥Õ¥£¡¼¥ë¥É¤Ë¤Ï
 .B SI_MESGQ
-¤¬¡¢
-.I si_signo
-¤Ë¤Ï¥·¥°¥Ê¥ëÈֹ椬¡¢
-.I si_value
-¤Ë¤Ï
-.I notification\->sigev_value
-¤Ç»ØÄꤷ¤¿Ãͤ¬ÀßÄꤵ¤ì¤ë¡£
+¤¬ÀßÄꤵ¤ì¤ë¡£
 .\" I don't know of other implementations that set
 .\" si_pid and si_uid -- MTK
+¤µ¤é¤Ë¡¢
 .I si_pid
 ¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤·¤¿¥×¥í¥»¥¹¤Î PID ¤¬¡¢
 .I si_uid
 ¤Ë¤ÏÁ÷¿®¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ ID ¤¬ÀßÄꤵ¤ì¤ë¡£
-.BR sigwaitinfo (2)
-¤ò»È¤Ã¤Æ¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¾ì¹ç¤â¡¢Æ±¤¸¾ðÊó¤¬ÆÀ¤é¤ì¤ë¡£
 .TP
 .B SIGEV_THREAD
-¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î³«»Ï´Ø¿ô¤È¤·¤Æ
-.I notification\->sigev_thread_function
-¤òµ¯Æ°¤¹¤ë¤³¤È¤ÇÄÌÃΤò¹Ô¤¦¡£
-µ¯Æ°»þ¤Î´Ø¿ô¤Î°ú¤­¿ô¤È¤·¤Æ¤Ï
-.I notification\->sigev_value
-¤À¤±¤¬ÅϤµ¤ì¤ë¡£
-.I notification\->sigev_notify_attributes
-¤Ï¡¢NULL °Ê³°¤Î¾ì¹ç¡¢
-¤½¤Î¥¹¥ì¥Ã¥É¤Î°À­¤òÄêµÁ¤¹¤ë
-.I pthread_attr_t
-¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤È¤Ê¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ë
-.RB ( pthread_attr_init (3)
-»²¾È)¡£
+¥á¥Ã¥»¡¼¥¸¤ÎÇÛÁ÷»þ¤Ë¤Ï¡¢
+.I sigev_notify_function
+¤¬¤¢¤¿¤«¤â¿·¤·¤¤¥¹¥ì¥Ã¥É¤Î³«»Ï´Ø¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ëµ¯Æ°¤µ¤ì¤ë¡£
+¾ÜºÙ¤Ï
+.BR sigevent (7)
+¤ò»²¾È¡£
 .PP
 °ì¤Ä¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤Ç¤­¤ë¥×¥í¥»¥¹¤Ï
 °ì¤Ä¤À¤±¤Ç¤¢¤ë¡£
 
-.I notification
+.I sevp
 ¤¬ NULL ¤Ç¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤é¤Î
 ÄÌÃΤò¼õ¿®¤¹¤ë¤Ë¸½ºßÅÐÏ¿¤·¤Æ¤¤¤ë¾ì¹ç¡¢ÅÐÏ¿¤òºï½ü¤¹¤ë¡£
 ¤³¤ì°Ê¹ß¡¢ÊÌ¤Î¥×¥í¥»¥¹¤¬¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤Ë
@@ -189,20 +153,20 @@ struct sigevent {
 ¤³¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ËÂФ¹¤ëÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤·¤Æ¤¤¤ë¡£
 .TP
 .B EINVAL
-.I notification\->sigev_notify
+.I sevp\->sigev_notify
 ¤¬µö²Ä¤µ¤ì¤¿ÃͤΤ¤¤º¤ì¤Ç¤â¤Ê¤¤¡£¤â¤·¤¯¤Ï
-.I notification\->sigev_notify
+.I sevp\->sigev_notify
 ¤¬
 .B SIGEV_SIGNAL
 ¤À¤¬
-.I notification\->sigev_signo
+.I sevp\->sigev_signo
 ¤¬Í­¸ú¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£
 .TP
 .B ENOMEM
 É¬Íפʥá¥â¥ê¤¬¤Ê¤«¤Ã¤¿¡£
 .PP
 POSIX.1-2008 ¤Ç¤Ï¡¢
-.I notifications
+.I sevp
 ¤¬ NULL ¤Ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬¥­¥å¡¼
 .I mqdes
 ¤Ë´Ø¤¹¤ëÄÌÃΤò¼õ¿®¤¹¤ë¤è¤¦¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥¨¥é¡¼
@@ -258,7 +222,7 @@ int
 main(int argc, char *argv[])
 {
     mqd_t mqdes;
-    struct sigevent not;
+    struct sigevent sev;
 
     if (argc != 2) {
        fprintf(stderr, "Usage: %s <mq-name>\\n", argv[0]);
@@ -269,11 +233,11 @@ main(int argc, char *argv[])
     if (mqdes == (mqd_t) \-1)
         handle_error("mq_open");
 
-    not.sigev_notify = SIGEV_THREAD;
-    not.sigev_notify_function = tfunc;
-    not.sigev_notify_attributes = NULL;
-    not.sigev_value.sival_ptr = &mqdes;   /* ¥¹¥ì¥Ã¥É´Ø¿ô¤ËÅϤ¹°ú¤­¿ô */
-    if (mq_notify(mqdes, &not) == \-1)
+    sev.sigev_notify = SIGEV_THREAD;
+    sev.sigev_notify_function = tfunc;
+    sev.sigev_notify_attributes = NULL;
+    sev.sigev_value.sival_ptr = &mqdes;   /* ¥¹¥ì¥Ã¥É´Ø¿ô¤ËÅϤ¹°ú¤­¿ô */
+    if (mq_notify(mqdes, &sev) == \-1)
         handle_error("mq_notify");
 
     pause();    /* ¥×¥í¥»¥¹¤Ï¥¹¥ì¥Ã¥É´Ø¿ô¤Ë¤è¤ê½ªÎ»¤µ¤ì¤ë */
@@ -286,4 +250,5 @@ main(int argc, char *argv[])
 .BR mq_receive (3),
 .BR mq_send (3),
 .BR mq_unlink (3),
-.BR mq_overview (7)
+.BR mq_overview (7),
+.BR sigevent (7)