204 lines
5 KiB
Groff
204 lines
5 KiB
Groff
.\" Copyright (c) 1991, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)popen.3 8.2 (Berkeley) 5/3/95
|
|
.\" %FreeBSD: src/lib/libc/gen/popen.3,v 1.10.2.3 2001/12/14 18:33:51 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd May 3, 1995
|
|
.Dt POPEN 3
|
|
.Os
|
|
.Sh ̾¾Î
|
|
.Nm popen ,
|
|
.Nm pclose
|
|
.Nd
|
|
.Tn Æþ½ÐÎϽèÍý
|
|
.Sh ¥é¥¤¥Ö¥é¥ê
|
|
.Lb libc
|
|
.Sh ½ñ¼°
|
|
.In stdio.h
|
|
.Ft FILE *
|
|
.Fn popen "const char *command" "const char *type"
|
|
.Ft int
|
|
.Fn pclose "FILE *stream"
|
|
.Sh ²òÀâ
|
|
.Fn popen
|
|
´Ø¿ô¤Ï¡¢ÁÐÊý¸þ¥Ñ¥¤¥×¥Õ¥©¡¼¥¯¤òºîÀ®¤·¡¢¥·¥§¥ë¤òµ¯Æ°¤·¤Æ¥×¥í¥»¥¹¤ò
|
|
.Dq ³«¤
|
|
¤Þ¤¹¡£
|
|
¿Æ¥×¥í¥»¥¹¤Ç»öÁ°¤Ë
|
|
.Fn popen
|
|
¤ò¸Æ¤Ó½Ð¤·¤Æ³«¤¤¤¿¥¹¥È¥ê¡¼¥à¤Ï¡¢
|
|
¿·¤·¤¤»Ò¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥¯¥í¡¼¥º¤µ¤ì¤Þ¤¹¡£
|
|
°ÊÁ°¤Î
|
|
.Fn popen
|
|
¤ÏñÊý¸þ¤Î¥Ñ¥¤¥×¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤¿¤¿¤á¡¢
|
|
.Fn popen
|
|
¤Î¿¤¯¤Î¼ÂÁõ¤Ï¡¢
|
|
ÆÉ¤ß½ñ¤¤ÎξÊý¤Ç¤Ï¤Ê¤¯¡¢
|
|
.Fa type
|
|
°ú¿ô¤¬ÆÉ¹þ¤â¤·¤¯¤Ï½ñ¹þ¤Î¤É¤Á¤é¤«¤ò»ØÄꤹ¤ë¤³¤È
|
|
¤À¤±µö²Ä¤·¤Æ¤¤¤Þ¤·¤¿¡£
|
|
¸½ºß¤Î
|
|
.Fn popen
|
|
¤ÏÁÐÊý¸þ¥Ñ¥¤¥×¤Ç¼ÂÁõ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢
|
|
.Fa type
|
|
°ú¿ô¤ÇÁÐÊý¸þ¥Ç¡¼¥¿¥Õ¥í¡¼¤òÍ×µá¤Ç¤¤Þ¤¹¡£
|
|
.Fa type
|
|
°ú¿ô¤Ï¥Ì¥ëʸ»ú¤Ç½ª¤ï¤ëʸ»úÎó¤Î¥Ý¥¤¥ó¥¿¤Ç¡¢
|
|
ÆÉ¼è¤ê¤Î¾ì¹ç¤Ï
|
|
.Ql r
|
|
¡¢½ñ¹þ¤ß¤Î¾ì¹ç¤Ï
|
|
.Ql w
|
|
¡¢ÆÉ¤ß½ñ¤¤Î¾ì¹ç¤Ï
|
|
.Ql r+
|
|
¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
|
.Pp
|
|
.Fa command
|
|
°ú¿ô¤Ï¡¢¥·¥§¥ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò´Þ¤à¡¢
|
|
¥Ì¥ëʸ»ú¤Ç½ªÎ»¤¹¤ëʸ»úÎó¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£
|
|
¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢
|
|
.Fl c
|
|
¥Õ¥é¥°¤Ç
|
|
.Pa /bin/sh
|
|
¤ËÅϤµ¤ì¤Þ¤¹¡£²ò¼á¤¬¤¢¤ë¾ì¹ç¡¢¥·¥§¥ë¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
|
|
.Pp
|
|
.Fn popen
|
|
¤ÎÌá¤êÃͤÏÄ̾ï¤Îɸ½à
|
|
.Tn Æþ½ÐÎÏ
|
|
¤È¤¢¤é¤æ¤ëÅÀ¤ÇƱÅù¤Î¤â¤Î¤Ç¤¹¡£
|
|
¤¿¤À¤·¡¢ÊĤ¸¤ë¤È¤¤Ï¡¢
|
|
.Fn fclose
|
|
¤Ç¤Ï¤Ê¤¯
|
|
.Fn pclose
|
|
¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
|
|
¤³¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¤Ë½ñ¹þ¤à¤È¡¢
|
|
¥³¥Þ¥ó¥É¤Îɸ½àÆþÎϤ˽ñ¹þ¤Þ¤ì¤Þ¤¹¡£
|
|
¥³¥Þ¥ó¥É¤Îɸ½à½ÐÎϤϡ¢
|
|
¤½¤Î¥³¥Þ¥ó¥É¼«ÂΤÇÊѹ¹¤·¤Ê¤¤¤«¤®¤ê¡¢
|
|
.Fn popen
|
|
¤Ç¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¹¡£
|
|
È¿ÂФˡ¢
|
|
.Fn popen
|
|
¤Ç
|
|
.Dq ³«¤«¤ì¤¿
|
|
¥¹¥È¥ê¡¼¥à¤«¤é¤ÎÆÉ¹þ¤ß¤Ï¡¢
|
|
¥³¥Þ¥ó¥É¤Îɸ½à½ÐÎϤ«¤éÆÉ¹þ¤Þ¤ì¤Þ¤¹¡£
|
|
¥³¥Þ¥ó¥É¤Îɸ½àÆþÎϤÏ
|
|
.Fn popen
|
|
¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¹¡£
|
|
.Pp
|
|
½ÐÎÏ
|
|
.Fn popen
|
|
¥¹¥È¥ê¡¼¥à¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç´°Á´¤Ë¥Ð¥Ã¥Õ¥¡
|
|
¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
|
|
.Pp
|
|
.Fn pclose
|
|
´Ø¿ô¤Ï¡¢·ë¤ÓÉÕ¤±¤é¤ì¤¿¥×¥í¥»¥¹¤Î½ªÎ»¤òÂÔµ¡¤·¡¢
|
|
.Fn wait4
|
|
¤¬Ì᤹¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤Þ¤¹¡£
|
|
.Sh Ìá¤êÃÍ
|
|
.Fn popen
|
|
´Ø¿ô¤Ï¡¢
|
|
.Xr fork 2
|
|
¤«
|
|
.Xr pipe 2
|
|
¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¤Þ¤¿¤Ï¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï
|
|
.Dv ¥Ì¥ë
|
|
¤òÌᤷ¤Þ¤¹¡£
|
|
.Pp
|
|
.Fn pclose
|
|
´Ø¿ô¤Ï¡¢
|
|
.Fa ¥¹¥È¥ê¡¼¥à
|
|
¤¬
|
|
.Fn popen
|
|
¤Ç
|
|
.Dq ³«¤¤¤¿
|
|
¥³¥Þ¥ó¥É¤È
|
|
·ë¤ÓÉÕ¤¤¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤Þ¤¿¤Ï
|
|
.Fa ¥¹¥È¥ê¡¼¥à
|
|
¤¬¤¹¤Ç¤Ë
|
|
.Fn pclose
|
|
¤Ç
|
|
.Dq ÊĤ¸¤Æ¤¤¤ë
|
|
¾ì¹ç¡¢¤¢¤ë¤¤¤Ï
|
|
.Xr wait4
|
|
¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÌᤷ¤Þ¤¹¡£
|
|
.Sh ¥¨¥é¡¼
|
|
.Fn popen
|
|
´Ø¿ô¤Ï¡¢¿®ÍêÀ¤Î¤¢¤ë
|
|
.Va errno
|
|
¤òÀßÄꤷ¤Þ¤»¤ó¡£
|
|
.Sh ´ØÏ¢¹àÌÜ
|
|
.Xr sh 1 ,
|
|
.Xr fork 2 ,
|
|
.Xr pipe 2 ,
|
|
.Xr wait4 2 ,
|
|
.Xr fclose 3 ,
|
|
.Xr fflush 3 ,
|
|
.Xr fopen 3 ,
|
|
.Xr stdio 3 ,
|
|
.Xr system 3
|
|
.Sh ¥Ð¥°
|
|
ÆÉ¼è¤êÍѤ˳«¤¤¤¿¥³¥Þ¥ó¥É¤Îɸ½àÆþÎϤϡ¢
|
|
.Fn popen
|
|
¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤È¥·¡¼¥¯¥ª¥Õ¥»¥Ã¥È¤ò¶¦Í¤¹¤ë¤Î¤Ç¡¢
|
|
¥ª¥ê¥¸¥Ê¥ë¥×¥í¥»¥¹¤¬¥Ð¥Ã¥Õ¥¡ÆÉ¼è¤ê¤ò¼Â¹Ô¤¹¤ë¤È¡¢
|
|
¥³¥Þ¥ó¥É¤ÎÆþÎϰÌÃÖ¤¬Í½Áۤɤª¤ê¤Ë¤Ê¤é¤Ê¤¤¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
|
|
ƱÍͤˡ¢½ñ¹þ¤ßÍѤ˳«¤¤¤¿¥³¥Þ¥ó¥É¤Î½ÐÎϤϡ¢
|
|
¥ª¥ê¥¸¥Ê¥ë¥×¥í¥»¥¹¤Î¤â¤Î¤Èº®¤¶¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¸å¼Ô¤Ï¡¢
|
|
.Fn popen
|
|
¤ÎÁ°¤Ë
|
|
.Xr fflush 3
|
|
¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç²óÈò¤Ç¤¤Þ¤¹¡£
|
|
.Pp
|
|
¥·¥§¥ë¤ò¼Â¹Ô¤·¤Ê¤¤¤³¤È¤Ë¤Ï¡¢¤½¤ì¤¬¼Â¹Ô¤Ç¤¤Ê¤¤¥³¥Þ¥ó¥É¤Î¥·¥§¥ë
|
|
¤Ê¤Î¤«¡¢¤¹¤°¤Ë½ªÎ»¤·¤Æ¤·¤Þ¤¦¥³¥Þ¥ó¥É¤«¡¢¶èÊ̤Ǥ¤Þ¤»¤ó¡£
|
|
½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Î 127 ¤Î¤ß¤¬¥Ò¥ó¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
|
|
.Pp
|
|
.Fn popen
|
|
¤Î°ú¿ô¤Ï¾ï¤Ë
|
|
.Xr sh 1
|
|
¤ò¸Æ¤Ó½Ð¤·¡¢
|
|
.Xr csh 1
|
|
¤Ï¸Æ¤Ó½Ð¤·¤Þ¤»¤ó¡£
|
|
.Sh Îò»Ë
|
|
.Fn popen
|
|
´Ø¿ô¤È
|
|
.Fn pclose
|
|
´Ø¿ô¤Ï¡¢
|
|
.At v7
|
|
¤ÇÅо줷¤Þ¤·¤¿¡£
|
|
.Pp
|
|
ÁÐÊý¸þµ¡Ç½¤Ï¡¢
|
|
.Fx 2.2.6
|
|
¤ÇÄɲ䵤ì¤Þ¤·¤¿¡£
|