Next: Asynchronous Processes, Previous: Shell Arguments, Up: Processes [Contents][Index]
Ʊ´ü¥×¥í¥»¥¹¡Êsynchronous process¡Ë¤òºîÀ®¤¹¤ë¤È¡¢
Emacs¤Ï¼Â¹Ô¤ò³¹Ô¤¹¤ë¤Þ¤¨¤Ë¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔ¤Á¤Þ¤¹¡£
dired¤Ï¤½¤ÎÎã¤Ç¤¹¡£
ls
¤òƱ´ü¥×¥í¥»¥¹¤Ç¼Â¹Ô¤·¡¢¤½¤Î½ÐÎϤò¾¯¡¹½¤Àµ¤·¤Þ¤¹¡£
¥×¥í¥»¥¹¤ÏƱ´ü¤Ê¤Î¤Ç¡¢Emacs¤¬¤Ê¤Ë¤«¤ò¹Ô¤ª¤¦¤È¤¹¤ë¤Þ¤¨¤Ë
¥Ç¥£¥ì¥¯¥È¥ê°ìÍ÷Á´Éô¤¬¥Ð¥Ã¥Õ¥¡¤ËÆÏ¤¤Þ¤¹¡£
Emacs¤ÏƱ´ü¥µ¥Ö¥×¥í¥»¥¹¤Î½ªÎ»¤òÂÔ¤Á¤Þ¤¹¤¬¡¢
¥æ¡¼¥¶¡¼¤ÏC-g¤ÈÂǤäÆÃæÃǤǤ¤Þ¤¹¡£
C-g¤Ï¤Þ¤º¥·¥°¥Ê¥ëSIGINT
¤Ç¥µ¥Ö¥×¥í¥»¥¹¤ò¥¥ë¤·¤è¤¦¤È¤·¤Þ¤¹¤¬¡¢
ÃæÃǤò´°Î»¤¹¤ë¤Þ¤¨¤Ë¥µ¥Ö¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔ¤Á¤Þ¤¹¡£
¤½¤Î´ü´Ö¤Ë¥æ¡¼¥¶¡¼¤¬¤µ¤é¤ËC-g¤òÂǤĤȡ¢
SIGKILL
¤Ç¥µ¥Ö¥×¥í¥»¥¹¤ò¨ºÂ¤Ë¥¥ë¤·¡¢¤¿¤À¤Á¤ËÃæÃǤò´°Î»¤·¤Þ¤¹¡£
See Quitting¡£
Ʊ´ü¥µ¥Ö¥×¥í¥»¥¹ºîÀ®´Ø¿ô¤Ï¡¢ ¤½¤Î¥×¥í¥»¥¹¤¬¤É¤Î¤è¤¦¤Ë½ªÎ»¤·¤¿¤«¤òɽ¤¹¤â¤Î¤òÊÖ¤·¤Þ¤¹¡£
Ʊ´ü¥µ¥Ö¥×¥í¥»¥¹¤«¤é¤Î½ÐÎϤϡ¢¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤à¥Æ¥¥¹¥È¤ÈƱÍͤˡ¢
¥³¡¼¥Ç¥£¥ó¥°¥·¥¹¥Æ¥à¤òÍѤ¤¤Æ°ìÈ̤ˤÏÉü¹æ²½¤·¤Þ¤¹¡£
call-process-region
¤¬¥µ¥Ö¥×¥í¥»¥¹¤ØÁ÷¤ëÆþÎϤϡ¢
¥Õ¥¡¥¤¥ë¤Ø½ñ¤¯¥Æ¥¥¹¥È¤ÈƱÍͤˡ¢
¥³¡¼¥Ç¥£¥ó¥°¥·¥¹¥Æ¥à¤òÍѤ¤¤ÆÉ乿²½¤·¤Þ¤¹¡£
See Coding Systems¡£
¤³¤Î´Ø¿ô¤Ï¡¢ÊÌ¤Î¥×¥í¥»¥¹¤Çprogram¤ò¸Æ¤Ó½Ð¤·¡¢ ¤½¤ì¤¬½ªÎ»¤¹¤ë¤Î¤òÂԤġ£
infile¤¬nil
¤Ç¤Ê¤±¤ì¤Ð
¥×¥í¥»¥¹¤Ø¤Îɸ½àÆþÎϤÏinfile¤Ç¤¢¤ë¤¬¡¢
¤µ¤â¤Ê¤±¤ì¤Ð/dev/null¤Ç¤¢¤ë¡£
°ú¿ôdestination¤Ç¥×¥í¥»¥¹¤Î½ÐÎÏÀè¤ò¤Ä¤®¤Î¤è¤¦¤Ë»ØÄꤹ¤ë¡£
¤³¤Î¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥È¤Î¤Þ¤¨¤Ë½ÐÎϤòÁÞÆþ¤¹¤ë¡£ ¤³¤ì¤Ë¤Ï¥×¥í¥»¥¹¤Îɸ½à½ÐÎϤÈɸ½à¥¨¥é¡¼¤Îξ¼Ô¤ò´Þ¤à¡£
ʸ»úÎó¤Ç»ØÄꤷ¤¿Ì¾Á°¤Î¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥È¤Î¤Þ¤¨¤Ë½ÐÎϤòÁÞÆþ¤¹¤ë¡£
t
¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Î¥Ý¥¤¥ó¥È¤Î¤Þ¤¨¤Ë½ÐÎϤòÁÞÆþ¤¹¤ë¡£
nil
½ÐÎϤòÇË´þ¤¹¤ë¡£
½ÐÎϤòÇË´þ¤·¡¢¥µ¥Ö¥×¥í¥»¥¹¤Î½ªÎ»¤òÂÔ¤¿¤º¤Ë¤¿¤À¤Á¤ËÌá¤ë¡£
¤³¤Î¾ì¹ç¡¢¤³¤Î¥×¥í¥»¥¹¤ÏEmacs¤ÈʹԤ·¤ÆÆ°ºî¤¹¤ë¤Î¤Ç¿¿¤Î¥µ¥Ö¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¤¡£ ¤·¤«¤·¡¢¤³¤Î´Ø¿ô¤«¤éÌá¤ë¤ÈEmacs¤Ï¥µ¥Ö¥×¥í¥»¥¹¤Î½èÍý¤òËܼÁŪ¤Ë¤Ï½ª¤¨¤¿¤È ¤¤¤¦°ÕÌ£¤ÇƱ´ü¥×¥í¥»¥¹¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤¤ë¡£
(real-destination error-destination)
ɸ½à½ÐÎϤÈɸ½à¥¨¥é¡¼¤òʬΥ¤·¡¢
real-destination¤Î»ØÄê¤Ë½¾¤Ã¤ÆÄ̾ï¤Î½ÐÎϤò°·¤¤¡¢
error-destination¤Ë½¾¤Ã¤Æ¥¨¥é¡¼½ÐÎϤò½èÍý¤¹¤ë¡£
error-destination¤¬nil
¤Ç¤¢¤ë¤È¥¨¥é¡¼½ÐÎϤòÇË´þ¤·¡¢
t
¤Ç¤¢¤ë¤ÈÄ̾ï¤Î½ÐÎϤ˺®¤¼¡¢
ʸ»úÎó¤Ç¤¢¤ë¤È¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤Ë¥¨¥é¡¼½ÐÎϤò¿¶¤ê¸þ¤±¤ë¡£
¥¨¥é¡¼½ÐÎϤòÆþ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤òľÀܤ˻ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£ ¤½¤ì¤ò¼ÂÁõ¤¹¤ë¤Î¤ÏÆñ¤·¤¹¤®¤ë¡£ ¤·¤«¤·¡¢¥¨¥é¡¼½ÐÎϤò°ì»þ¥Õ¥¡¥¤¥ë¤ØÁ÷¤Ã¤Æ¤«¤é ¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤¹¤ì¤Ð¡¢Æ±¤¸¸ú²Ì¤òÆÀ¤é¤ì¤ë¡£
display¤¬nil
°Ê³°¤Ç¤¢¤ë¤È¡¢call-process
¤Ï¡¢
½ÐÎϤ¬ÁÞÆþ¤µ¤ì¤ë¤È¥Ð¥Ã¥Õ¥¡¤òºÆÉ½¼¨¤¹¤ë¡£
¡Ê¤·¤«¤·¡¢¥³¡¼¥Ç¥£¥ó¥°¥·¥¹¥Æ¥à¤È¤·¤Æ¼ÂºÝ¤Î¥Ç¡¼¥¿¤«¤é
¥³¡¼¥Ç¥£¥ó¥°¥·¥¹¥Æ¥à¤ò¿äÄꤹ¤ëundecided
¤ò»ØÄꤷ¤Æ¤¤¤ë¤È¡¢
ÈóASCIIʸ»ú¤Ë½Ð²ñ¤¦¤ÈºÆÉ½¼¨¤ò·Ñ³¤Ç¤¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£
¤³¤ì¤ò½¤Àµ¤¹¤ë¤Î¤¬º¤Æñ¤Ç¤¢¤ëº¬ËÜŪ¤ÊÍýͳ¤¬¤¢¤ë¡£¡Ë
¤µ¤â¤Ê¤±¤ì¤Ð¡¢´Ø¿ôcall-process
¤ÏºÆÉ½¼¨¤·¤Ê¤¤¤Î¤Ç¡¢
Emacs¤¬Ä̾ï¤Î²áÄø¤Ç¤½¤Î¥Ð¥Ã¥Õ¥¡¤òºÆÉ½¼¨¤¹¤ë¤Þ¤Ç¤Ï¡¢
¥¹¥¯¥ê¡¼¥ó¾å¤Ç·ë²Ì¤Ï¸«¤¨¤Ê¤¤¡£
»Ä¤ê¤Î°ú¿ôargs¤Ï¡¢¥×¥í¥°¥é¥à¤ËÂФ¹¤ë ¥³¥Þ¥ó¥É¹Ô°ú¿ô¤ò»ØÄꤹ¤ëʸ»úÎó¤Ç¤¢¤ë¡£
¡ÊÂÔ¤¿¤Ê¤¤¤è¤¦¤Ë»Ø¼¨¤·¤Ê¤¤¸Â¤ê¡Ëcall-process
¤¬ÊÖ¤¹Ãͤϡ¢
¥×¥í¥»¥¹¤Î½ªÎ»Íýͳ¤òɽ¤¹¡£
¿ô¤Ç¥µ¥Ö¥×¥í¥»¥¹¤Î½ªÎ»¾õÂÖ¤òɽ¤·¡¢
0¤ÏÀ®¸ù¡¢¤½¤ì°Ê³°¤ÎÃͤϼºÇÔ¤ò°ÕÌ£¤¹¤ë¡£
¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤Ç½ªÎ»¤¹¤ë¤È¡¢
call-process
¤Ï¥·¥°¥Ê¥ë¤òµ½Ò¤¹¤ëʸ»úÎó¤òÊÖ¤¹¡£
¤Ä¤®¤ÎÎã¤Ç¤Ï¡¢¥Ð¥Ã¥Õ¥¡‘foo’¤¬¥«¥ì¥ó¥È¤Ç¤¢¤ë¡£
(call-process "pwd" nil t) ⇒ nil ---------- Buffer: foo ---------- /usr/user/lewis/manual ---------- Buffer: foo ----------
(call-process "grep" nil "bar" nil "lewis" "/etc/passwd") ⇒ nil ---------- Buffer: bar ---------- lewis:5LTsHm66CSWKg:398:21:Bil Lewis:/user/lewis:/bin/csh ---------- Buffer: bar ----------
insert-directory
¤ÎÄêµÁ¤Ë¤¢¤ëcall-process
¤Î
¤è¤¤»ÈÍÑÎã¤ò¤Ä¤®¤Ë¼¨¤¹¡£
(call-process insert-directory-program nil t nil switches (if full-directory-p (concat (file-name-as-directory file) ".") file))
¤³¤Î´Ø¿ô¤Ï¡¢program¤òư¤«¤¹¥×¥í¥»¥¹¤Îɸ½àÆþÎϤȤ·¤Æ
start¤Èend¤Î¤¢¤¤¤À¤Î¥Æ¥¥¹¥È¤òÁ÷¤ë¡£
delete¤¬nil
°Ê³°¤Ç¤¢¤ë¤È¡¢Á÷¤Ã¤¿¥Æ¥¥¹¥È¤òºï½ü¤¹¤ë¡£
¤³¤ì¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤ËÁ÷¤Ã¤¿ÆþÎϤΤ«¤ï¤ê¤Ë½ÐÎϤòÁÞÆþ¤¹¤ë¤³¤È¤ò
°ÕÌ£¤¹¤ëdestination¤¬t
¤Ç¤¢¤ë¤È¤¤ËÍÍѤǤ¢¤ë¡£
°ú¿ôdestination¤Èdisplay¤Ï¡¢
¥µ¥Ö¥×¥í¥»¥¹¤«¤é¤Î½ÐÎϤò¤É¤Î¤è¤¦¤Ë°·¤¤¡¢
½ÐÎϤ«ÅþÃ夹¤ë¤¿¤Ó¤Ëɽ¼¨¤ò¹¹¿·¤¹¤ë¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£
¾Ü¤·¤¯¤Ï¡¢¾åµ¤Îcall-process
¤Îµ½Ò¤ò»²¾È¡£
destination¤¬À°¿ô0¤Ç¤¢¤ë¤È¡¢
call-process-region
¤Ï¡¢¥µ¥Ö¥×¥í¥»¥¹¤Î½ªÎ»¤òÂÔ¤¿¤º¤Ë
½ÐÎϤòÇË´þ¤·¤Æ¤¿¤À¤Á¤Ënil
¤òÊÖ¤¹¡£
»Ä¤ê¤Î°ú¿ôargs¤Ï¡¢¥×¥í¥°¥é¥à¤ËÂФ¹¤ë ¥³¥Þ¥ó¥É¹Ô°ú¿ô¤ò»ØÄꤹ¤ëʸ»úÎó¤Ç¤¢¤ë¡£
call-process-region
¤ÎÌá¤êÃͤÏcall-process
¤ÈƱÍͤǤ¢¤ê¡¢
ÂÔ¤¿¤º¤ËÌá¤ë¤è¤¦¤Ë»Ø¼¨¤¹¤ë¤Ènil
¤Ç¤¢¤ê¡¢
¤µ¤â¤Ê¤±¤ì¤Ð¥µ¥Ö¥×¥í¥»¥¹¤Î½ªÎ»¾õÂÖ¤òɽ¤¹¿ô¤«Ê¸»úÎó¤Ç¤¢¤ë¡£
¤Ä¤®¤ÎÎã¤Ç¤Ï¡¢
¥Ð¥Ã¥Õ¥¡‘foo’¤Î»Ï¤á¤Î5ʸ»ú¡Êñ¸ì‘input’¡Ë¤òɸ½àÆþÎϤȤ·¤Æ
¥æ¡¼¥Æ¥£¥ê¥Æ¥£cat
¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ëcall-process-region
¤ò»È¤¦¡£
cat
¤Ï¡¢É¸½àÆþÎϤòɸ½à½ÐÎϤإ³¥Ô¡¼¤¹¤ë¡£
°ú¿ôdestination¤¬t
¤Ç¤¢¤ë¤Î¤Ç¡¢
½ÐÎϤϥ«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤µ¤ì¤ë¡£
---------- Buffer: foo ---------- input∗ ---------- Buffer: foo ----------
(call-process-region 1 6 "cat" nil t) ⇒ nil ---------- Buffer: foo ---------- inputinput∗ ---------- Buffer: foo ----------
¥³¥Þ¥ó¥Éshell-command-on-region
¤Ï¡¢
¤Ä¤®¤Î¤è¤¦¤Ëcall-process-region
¤ò»È¤¦¡£
(call-process-region
start end
shell-file-name ; ¥×¥í¥°¥é¥à¤Î̾Á°
nil ; ¥ê¡¼¥¸¥ç¥ó¤òºï½ü¤·¤Ê¤¤
buffer ; ½ÐÎϤÏbuffer
¤ØÆþ¤ì¤ë
nil ; ½ÐÎÏÃæ¤ÏºÆÉ½¼¨¤·¤Ê¤¤
"-c" command) ; ¥·¥§¥ë¤ËÂФ¹¤ë°ú¿ô
¤³¤Î´Ø¿ô¤Ï¡¢¥·¥§¥ë¥³¥Þ¥ó¥É¤È¤·¤Æcommand¡Êʸ»úÎó¡Ë¤ò¼Â¹Ô¤·¡¢ ¥³¥Þ¥ó¥É¤Î½ÐÎϤòʸ»úÎó¤È¤·¤ÆÊÖ¤¹¡£
Next: Asynchronous Processes, Previous: Shell Arguments, Up: Processes [Contents][Index]