{"id":2488,"date":"2009-11-11T18:44:15","date_gmt":"2009-11-11T09:44:15","guid":{"rendered":"http:\/\/yasu2.prosou.nu\/blog\/index.php\/2009\/11\/11\/sigio_howto\/"},"modified":"2009-11-11T18:44:15","modified_gmt":"2009-11-11T09:44:15","slug":"sigio_howto","status":"publish","type":"post","link":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/2009\/11\/11\/2488\/","title":{"rendered":"SIGIO Howto"},"content":{"rendered":"<p>User code to enable async notification by SIGIO:<br \/>\nsignal(SIGIO, &#038;handler); \/\/ instead, do sigaction() in real code!<br \/>\nfcntl(fd, F_SETOWN, getpid());<br \/>\nint oflags = fcntl(fd, F_GETFL);<br \/>\nfcntl(fd, F_SETFL, oflags|FASYNC);<br \/>\nDriver method:<br \/>\nfilp->fasync(): called when FASYNC flag has modified.<br \/>\nKernel functions:<br \/>\nfasync_helper(): Register listener process.<br \/>\nkill_fasync(): Transmit signals to listener processes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>User code to enable async notification by SIGIO: signal(SIGIO, &#038;handler); \/\/ instead, do sigaction() in r &hellip; <a href=\"https:\/\/yasu2.prosou.nu\/blog\/index.php\/2009\/11\/11\/2488\/\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;SIGIO Howto&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-2488","post","type-post","status-publish","format-standard","hentry","category-unix-"],"_links":{"self":[{"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/2488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=2488"}],"version-history":[{"count":0,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/2488\/revisions"}],"wp:attachment":[{"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=2488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=2488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yasu2.prosou.nu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=2488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}