Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 68c0c2ff89d8bf9051ff1b9773ed48e4 > files > 3949

libzypp-doc-17.9.0-1.1.mga7.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libzypp: zypp::ExternalProgram Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libzypp
   &#160;<span id="projectnumber">17.9.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classzypp_1_1ExternalProgram.html','');});
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classzypp_1_1ExternalProgram-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">zypp::ExternalProgram Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Execute a program and give access to its io An object of this class encapsulates the execution of an external program.  
 <a href="classzypp_1_1ExternalProgram.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for zypp::ExternalProgram:</div>
<div class="dyncontent">
<div class="center"><img src="classzypp_1_1ExternalProgram__inherit__graph.png" border="0" usemap="#zypp_1_1ExternalProgram_inherit__map" alt="Inheritance graph"/></div>
<map name="zypp_1_1ExternalProgram_inherit__map" id="zypp_1_1ExternalProgram_inherit__map">
<area shape="rect"  title="Execute a program and give access to its io An object of this class encapsulates the execution of an ..." alt="" coords="127,95,288,121"/>
<area shape="rect"  href="classzypp_1_1ExternalProgramWithSeperatePgid.html" title="ExternalProgram extended to change the progress group ID after forking." alt="" coords="5,169,196,211"/>
<area shape="rect"  href="classzypp_1_1ExternalProgramWithStderr.html" title="ExternalProgram extended to offer reading programs stderr." alt="" coords="220,169,411,211"/>
<area shape="rect"  href="classzypp_1_1externalprogram_1_1ExternalDataSource.html" title="Bidirectional stream to external data." alt="" coords="127,5,287,47"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:addd37559311e2d7c296f7f8d3bbb65ba"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a> { <a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a>, 
<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baa44c201571387f6a9700543e654f38ad0">Discard_Stderr</a>, 
<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaaba72a64b32a67070ba03a24f0d3d6b0">Stderr_To_Stdout</a>, 
<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baa414ec6bf2a827352490d2f6fe346fd40">Stderr_To_FileDesc</a>
 }</td></tr>
<tr class="memdesc:addd37559311e2d7c296f7f8d3bbb65ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define symbols for different policies on the handling of stderr.  <a href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">More...</a><br /></td></tr>
<tr class="separator:addd37559311e2d7c296f7f8d3bbb65ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a569290605b69ca72af7d274b507394b6"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a569290605b69ca72af7d274b507394b6">Arguments</a></td></tr>
<tr class="separator:a569290605b69ca72af7d274b507394b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fef621d0905ca4e274d87974e6f1598"><td class="memItemLeft" align="right" valign="top">typedef std::map&lt; std::string, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a></td></tr>
<tr class="memdesc:a1fef621d0905ca4e274d87974e6f1598"><td class="mdescLeft">&#160;</td><td class="mdescRight">For passing additional environment variables to set.  <a href="#a1fef621d0905ca4e274d87974e6f1598">More...</a><br /></td></tr>
<tr class="separator:a1fef621d0905ca4e274d87974e6f1598"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1d401194136399180580974100b241dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a1d401194136399180580974100b241dd">ExternalProgram</a> (std::string commandline, <a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a> stderr_disp=<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a>, <a class="el" href="classbool.html">bool</a> <a class="el" href="classzypp_1_1ExternalProgram.html#accd1acdef68fbfa933382d173674ee7c">use_pty</a>=false, int stderr_fd=-1, <a class="el" href="classbool.html">bool</a> default_locale=false, const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;root=&quot;&quot;)</td></tr>
<tr class="memdesc:a1d401194136399180580974100b241dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the external program by using the shell <code>/bin/sh<code> with the option <code>-c</code>. </code></code> <a href="#a1d401194136399180580974100b241dd">More...</a><br /></td></tr>
<tr class="separator:a1d401194136399180580974100b241dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a040f7a07960008292ab4352fe9222502"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a040f7a07960008292ab4352fe9222502">ExternalProgram</a> ()</td></tr>
<tr class="memdesc:a040f7a07960008292ab4352fe9222502"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start an external program by giving the arguments as an arry of char *pointers.  <a href="#a040f7a07960008292ab4352fe9222502">More...</a><br /></td></tr>
<tr class="separator:a040f7a07960008292ab4352fe9222502"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a581d1ff6d6036568d0c19a776e7d90d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a581d1ff6d6036568d0c19a776e7d90d3">ExternalProgram</a> (const <a class="el" href="classzypp_1_1ExternalProgram.html#a569290605b69ca72af7d274b507394b6">Arguments</a> &amp;argv, <a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a> stderr_disp=<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a>, <a class="el" href="classbool.html">bool</a> <a class="el" href="classzypp_1_1ExternalProgram.html#accd1acdef68fbfa933382d173674ee7c">use_pty</a>=false, int stderr_fd=-1, <a class="el" href="classbool.html">bool</a> default_locale=false, const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;root=&quot;&quot;)</td></tr>
<tr class="separator:a581d1ff6d6036568d0c19a776e7d90d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa43a79455d4969b77e449f842ac85017"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#aa43a79455d4969b77e449f842ac85017">ExternalProgram</a> (const <a class="el" href="classzypp_1_1ExternalProgram.html#a569290605b69ca72af7d274b507394b6">Arguments</a> &amp;argv, const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &amp;environment, <a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a> stderr_disp=<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a>, <a class="el" href="classbool.html">bool</a> <a class="el" href="classzypp_1_1ExternalProgram.html#accd1acdef68fbfa933382d173674ee7c">use_pty</a>=false, int stderr_fd=-1, <a class="el" href="classbool.html">bool</a> default_locale=false, const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;root=&quot;&quot;)</td></tr>
<tr class="separator:aa43a79455d4969b77e449f842ac85017"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1779a600c2355f80dc372512d6b58af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#ac1779a600c2355f80dc372512d6b58af">ExternalProgram</a> (const char *const *argv, <a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a> stderr_disp=<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a>, <a class="el" href="classbool.html">bool</a> <a class="el" href="classzypp_1_1ExternalProgram.html#accd1acdef68fbfa933382d173674ee7c">use_pty</a>=false, int stderr_fd=-1, <a class="el" href="classbool.html">bool</a> default_locale=false, const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;root=&quot;&quot;)</td></tr>
<tr class="separator:ac1779a600c2355f80dc372512d6b58af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a163d5c4bf9b6f9adaeeaffdda25b29"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a6a163d5c4bf9b6f9adaeeaffdda25b29">ExternalProgram</a> (const char *const *argv, const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &amp;environment, <a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a> stderr_disp=<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a>, <a class="el" href="classbool.html">bool</a> <a class="el" href="classzypp_1_1ExternalProgram.html#accd1acdef68fbfa933382d173674ee7c">use_pty</a>=false, int stderr_fd=-1, <a class="el" href="classbool.html">bool</a> default_locale=false, const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;root=&quot;&quot;)</td></tr>
<tr class="separator:a6a163d5c4bf9b6f9adaeeaffdda25b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3276a8493be6563566c9c8ee19206e41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a3276a8493be6563566c9c8ee19206e41">ExternalProgram</a> (const char *binpath, const char *const *argv_1, <a class="el" href="classbool.html">bool</a> <a class="el" href="classzypp_1_1ExternalProgram.html#accd1acdef68fbfa933382d173674ee7c">use_pty</a>=false)</td></tr>
<tr class="separator:a3276a8493be6563566c9c8ee19206e41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b3981bee16711bb542980472d9dd698"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a6b3981bee16711bb542980472d9dd698">ExternalProgram</a> (const char *binpath, const char *const *argv_1, const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &amp;environment, <a class="el" href="classbool.html">bool</a> <a class="el" href="classzypp_1_1ExternalProgram.html#accd1acdef68fbfa933382d173674ee7c">use_pty</a>=false)</td></tr>
<tr class="separator:a6b3981bee16711bb542980472d9dd698"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46b21ffc8bb9952598b43ee8d09a9ad6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a46b21ffc8bb9952598b43ee8d09a9ad6">~ExternalProgram</a> ()</td></tr>
<tr class="separator:a46b21ffc8bb9952598b43ee8d09a9ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac72fa79ccdbaa0f7fc9560b291dd4216"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#ac72fa79ccdbaa0f7fc9560b291dd4216">close</a> ()</td></tr>
<tr class="memdesc:ac72fa79ccdbaa0f7fc9560b291dd4216"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for the progamm to complete.  <a href="#ac72fa79ccdbaa0f7fc9560b291dd4216">More...</a><br /></td></tr>
<tr class="separator:ac72fa79ccdbaa0f7fc9560b291dd4216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa129e22e8025a60ac51334a1d6603557"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#aa129e22e8025a60ac51334a1d6603557">kill</a> ()</td></tr>
<tr class="memdesc:aa129e22e8025a60ac51334a1d6603557"><td class="mdescLeft">&#160;</td><td class="mdescRight">Kill the program.  <a href="#aa129e22e8025a60ac51334a1d6603557">More...</a><br /></td></tr>
<tr class="separator:aa129e22e8025a60ac51334a1d6603557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4c16f7ec7df54ea23dd6c6da2621506"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#ab4c16f7ec7df54ea23dd6c6da2621506">running</a> ()</td></tr>
<tr class="memdesc:ab4c16f7ec7df54ea23dd6c6da2621506"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether program is running.  <a href="#ab4c16f7ec7df54ea23dd6c6da2621506">More...</a><br /></td></tr>
<tr class="separator:ab4c16f7ec7df54ea23dd6c6da2621506"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5c5a8efac167c1d4f80408e144b496b"><td class="memItemLeft" align="right" valign="top">pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#aa5c5a8efac167c1d4f80408e144b496b">getpid</a> ()</td></tr>
<tr class="memdesc:aa5c5a8efac167c1d4f80408e144b496b"><td class="mdescLeft">&#160;</td><td class="mdescRight">return pid  <a href="#aa5c5a8efac167c1d4f80408e144b496b">More...</a><br /></td></tr>
<tr class="separator:aa5c5a8efac167c1d4f80408e144b496b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0369899f0c0f36b68f6001704b90486"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#ae0369899f0c0f36b68f6001704b90486">command</a> () const</td></tr>
<tr class="memdesc:ae0369899f0c0f36b68f6001704b90486"><td class="mdescLeft">&#160;</td><td class="mdescRight">The command we're executing.  <a href="#ae0369899f0c0f36b68f6001704b90486">More...</a><br /></td></tr>
<tr class="separator:ae0369899f0c0f36b68f6001704b90486"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a018285fba95217aac0581a5d4c6a486a"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a018285fba95217aac0581a5d4c6a486a">execError</a> () const</td></tr>
<tr class="memdesc:a018285fba95217aac0581a5d4c6a486a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Some detail telling why the execution failed, if it failed.  <a href="#a018285fba95217aac0581a5d4c6a486a">More...</a><br /></td></tr>
<tr class="separator:a018285fba95217aac0581a5d4c6a486a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a1faace69250c6503249866fc032a29"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a0a1faace69250c6503249866fc032a29">operator&gt;&gt;</a> (std::ostream &amp;out_r)</td></tr>
<tr class="memdesc:a0a1faace69250c6503249866fc032a29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Redirect all command output to an <code>ostream</code>.  <a href="#a0a1faace69250c6503249866fc032a29">More...</a><br /></td></tr>
<tr class="separator:a0a1faace69250c6503249866fc032a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html">zypp::externalprogram::ExternalDataSource</a></td></tr>
<tr class="memitem:a855e199a4598deb0b6987037f1dd0cd7 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a855e199a4598deb0b6987037f1dd0cd7">ExternalDataSource</a> (FILE *<a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a868bf86bb0f90ceddc7ae6c197c706a8">inputfile</a>=0, FILE *<a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#aa2aa468b009c738dffe16770fcddf2ab">outputfile</a>=0)</td></tr>
<tr class="memdesc:a855e199a4598deb0b6987037f1dd0cd7 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new instance.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a855e199a4598deb0b6987037f1dd0cd7">More...</a><br /></td></tr>
<tr class="separator:a855e199a4598deb0b6987037f1dd0cd7 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae85a762d51d914a0b6a1789a4f7018ae inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#ae85a762d51d914a0b6a1789a4f7018ae">~ExternalDataSource</a> ()</td></tr>
<tr class="memdesc:ae85a762d51d914a0b6a1789a4f7018ae inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implicitly close the connection.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#ae85a762d51d914a0b6a1789a4f7018ae">More...</a><br /></td></tr>
<tr class="separator:ae85a762d51d914a0b6a1789a4f7018ae inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43b25352b74d5c97d39071615612b6e5 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a43b25352b74d5c97d39071615612b6e5">send</a> (const char *buffer, size_t length)</td></tr>
<tr class="memdesc:a43b25352b74d5c97d39071615612b6e5 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send some data to the output stream.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a43b25352b74d5c97d39071615612b6e5">More...</a><br /></td></tr>
<tr class="separator:a43b25352b74d5c97d39071615612b6e5 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a354fac22d8ba76bf79b8feb46fbe3e5d inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a354fac22d8ba76bf79b8feb46fbe3e5d">send</a> (std::string s)</td></tr>
<tr class="memdesc:a354fac22d8ba76bf79b8feb46fbe3e5d inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send some data down the stream.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a354fac22d8ba76bf79b8feb46fbe3e5d">More...</a><br /></td></tr>
<tr class="separator:a354fac22d8ba76bf79b8feb46fbe3e5d inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31d4e8fa40cc16b1fbcadd57314676f3 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a31d4e8fa40cc16b1fbcadd57314676f3">receive</a> (char *buffer, size_t length)</td></tr>
<tr class="memdesc:a31d4e8fa40cc16b1fbcadd57314676f3 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read some data from the input stream.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a31d4e8fa40cc16b1fbcadd57314676f3">More...</a><br /></td></tr>
<tr class="separator:a31d4e8fa40cc16b1fbcadd57314676f3 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8211df39b7e79e32164f6a4d32fd513d inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a8211df39b7e79e32164f6a4d32fd513d">receiveLine</a> ()</td></tr>
<tr class="memdesc:a8211df39b7e79e32164f6a4d32fd513d inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read one line from the input stream.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a8211df39b7e79e32164f6a4d32fd513d">More...</a><br /></td></tr>
<tr class="separator:a8211df39b7e79e32164f6a4d32fd513d inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ece1dd9f2729aeb7c2df5ad8912c457 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a6ece1dd9f2729aeb7c2df5ad8912c457">receiveUpto</a> (char c)</td></tr>
<tr class="memdesc:a6ece1dd9f2729aeb7c2df5ad8912c457 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read characters into a string until character c is read.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a6ece1dd9f2729aeb7c2df5ad8912c457">More...</a><br /></td></tr>
<tr class="separator:a6ece1dd9f2729aeb7c2df5ad8912c457 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9029e82f96a523406da9897c39f33840 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a9029e82f96a523406da9897c39f33840">setBlocking</a> (<a class="el" href="classbool.html">bool</a> mode)</td></tr>
<tr class="memdesc:a9029e82f96a523406da9897c39f33840 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the blocking mode of the input stream.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a9029e82f96a523406da9897c39f33840">More...</a><br /></td></tr>
<tr class="separator:a9029e82f96a523406da9897c39f33840 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a623060692346cec538bf83c86684da02 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a623060692346cec538bf83c86684da02">inputFile</a> () const</td></tr>
<tr class="memdesc:a623060692346cec538bf83c86684da02 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the input stream.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a623060692346cec538bf83c86684da02">More...</a><br /></td></tr>
<tr class="separator:a623060692346cec538bf83c86684da02 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e0c4186177d77f56957bd65ff3fdd1e inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a7e0c4186177d77f56957bd65ff3fdd1e">outputFile</a> () const</td></tr>
<tr class="memdesc:a7e0c4186177d77f56957bd65ff3fdd1e inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the output stream.  <a href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a7e0c4186177d77f56957bd65ff3fdd1e">More...</a><br /></td></tr>
<tr class="separator:a7e0c4186177d77f56957bd65ff3fdd1e inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a49fa63cc024e0ca3c2c4eed2fc5fa886"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a49fa63cc024e0ca3c2c4eed2fc5fa886">renumber_fd</a> (int origfd, int newfd)</td></tr>
<tr class="memdesc:a49fa63cc024e0ca3c2c4eed2fc5fa886"><td class="mdescLeft">&#160;</td><td class="mdescRight">origfd will be accessible as newfd and closed (unless they were equal)  <a href="#a49fa63cc024e0ca3c2c4eed2fc5fa886">More...</a><br /></td></tr>
<tr class="separator:a49fa63cc024e0ca3c2c4eed2fc5fa886"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab87d9b758aac614609d44474830a87f6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#ab87d9b758aac614609d44474830a87f6">checkStatus</a> (int)</td></tr>
<tr class="separator:ab87d9b758aac614609d44474830a87f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a802c71b92315c2ca8807b1051b59a51d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a802c71b92315c2ca8807b1051b59a51d">start_program</a> (const char *const *argv, const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &amp;environment, <a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a> stderr_disp=<a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a>, int stderr_fd=-1, <a class="el" href="classbool.html">bool</a> default_locale=false, const char *root=NULL, <a class="el" href="classbool.html">bool</a> switch_pgid=false)</td></tr>
<tr class="separator:a802c71b92315c2ca8807b1051b59a51d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:accd1acdef68fbfa933382d173674ee7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#accd1acdef68fbfa933382d173674ee7c">use_pty</a></td></tr>
<tr class="memdesc:accd1acdef68fbfa933382d173674ee7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true, if a pair of ttys is used for communication instead of a pair of pipes.  <a href="#accd1acdef68fbfa933382d173674ee7c">More...</a><br /></td></tr>
<tr class="separator:accd1acdef68fbfa933382d173674ee7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf21ec7648fcea7018bb0d618e0388b4"><td class="memItemLeft" align="right" valign="top">pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#aaf21ec7648fcea7018bb0d618e0388b4">pid</a></td></tr>
<tr class="separator:aaf21ec7648fcea7018bb0d618e0388b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08dbc19897ea3c07c7971e5bd34785ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a08dbc19897ea3c07c7971e5bd34785ce">_exitStatus</a></td></tr>
<tr class="separator:a08dbc19897ea3c07c7971e5bd34785ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3bab1d99c1b1b38db123e3e0089340f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#aa3bab1d99c1b1b38db123e3e0089340f">_command</a></td></tr>
<tr class="memdesc:aa3bab1d99c1b1b38db123e3e0089340f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the command we're executing.  <a href="#aa3bab1d99c1b1b38db123e3e0089340f">More...</a><br /></td></tr>
<tr class="separator:aa3bab1d99c1b1b38db123e3e0089340f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45a585ab184005cdc7a51f07a48f3ce2"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a45a585ab184005cdc7a51f07a48f3ce2">_execError</a></td></tr>
<tr class="memdesc:a45a585ab184005cdc7a51f07a48f3ce2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remember execution errors like failed fork/exec.  <a href="#a45a585ab184005cdc7a51f07a48f3ce2">More...</a><br /></td></tr>
<tr class="separator:a45a585ab184005cdc7a51f07a48f3ce2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classzypp_1_1externalprogram_1_1ExternalDataSource"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classzypp_1_1externalprogram_1_1ExternalDataSource')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html">zypp::externalprogram::ExternalDataSource</a></td></tr>
<tr class="memitem:a868bf86bb0f90ceddc7ae6c197c706a8 inherit pro_attribs_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a868bf86bb0f90ceddc7ae6c197c706a8">inputfile</a></td></tr>
<tr class="separator:a868bf86bb0f90ceddc7ae6c197c706a8 inherit pro_attribs_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2aa468b009c738dffe16770fcddf2ab inherit pro_attribs_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#aa2aa468b009c738dffe16770fcddf2ab">outputfile</a></td></tr>
<tr class="separator:aa2aa468b009c738dffe16770fcddf2ab inherit pro_attribs_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Execute a program and give access to its io An object of this class encapsulates the execution of an external program. </p>
<p>It starts the program using fork and some exec.. call, gives you access to the program's stdio and closes the program after use.</p>
<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* argv[] =</div><div class="line">{</div><div class="line">    <span class="stringliteral">&quot;/usr/bin/foo,</span></div><div class="line"><span class="stringliteral">    &quot;</span>--option1<span class="stringliteral">&quot;,</span></div><div class="line"><span class="stringliteral">    &quot;</span>--option2<span class="stringliteral">&quot;,</span></div><div class="line"><span class="stringliteral">    NULL</span></div><div class="line"><span class="stringliteral">};</span></div><div class="line"><span class="stringliteral"></span></div><div class="line"><span class="stringliteral">ExternalProgram prog( argv,</span></div><div class="line"><span class="stringliteral">                       ExternalProgram::Discard_Stderr,</span></div><div class="line"><span class="stringliteral">                       false, -1, true);</span></div><div class="line"><span class="stringliteral">string line;</span></div><div class="line"><span class="stringliteral">for(line = prog.receiveLine();</span></div><div class="line"><span class="stringliteral">    ! line.empty();</span></div><div class="line"><span class="stringliteral">    line = prog.receiveLine() )</span></div><div class="line"><span class="stringliteral">{</span></div><div class="line"><span class="stringliteral">    stream &lt;&lt; line;</span></div><div class="line"><span class="stringliteral">}</span></div><div class="line"><span class="stringliteral">prog.close();</span></div></div><!-- fragment --> 
<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00059">59</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a569290605b69ca72af7d274b507394b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a569290605b69ca72af7d274b507394b6">&#9670;&nbsp;</a></span>Arguments</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;std::string&gt; <a class="el" href="classzypp_1_1ExternalProgram.html#a569290605b69ca72af7d274b507394b6">zypp::ExternalProgram::Arguments</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00064">64</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<a id="a1fef621d0905ca4e274d87974e6f1598"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fef621d0905ca4e274d87974e6f1598">&#9670;&nbsp;</a></span>Environment</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt;std::string,std::string&gt; <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">zypp::ExternalProgram::Environment</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>For passing additional environment variables to set. </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00081">81</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="addd37559311e2d7c296f7f8d3bbb65ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addd37559311e2d7c296f7f8d3bbb65ba">&#9670;&nbsp;</a></span>Stderr_Disposition</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">zypp::ExternalProgram::Stderr_Disposition</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define symbols for different policies on the handling of stderr. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715"></a>Normal_Stderr&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="addd37559311e2d7c296f7f8d3bbb65baa44c201571387f6a9700543e654f38ad0"></a>Discard_Stderr&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="addd37559311e2d7c296f7f8d3bbb65baaaba72a64b32a67070ba03a24f0d3d6b0"></a>Stderr_To_Stdout&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="addd37559311e2d7c296f7f8d3bbb65baa414ec6bf2a827352490d2f6fe346fd40"></a>Stderr_To_FileDesc&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00070">70</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a1d401194136399180580974100b241dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d401194136399180580974100b241dd">&#9670;&nbsp;</a></span>ExternalProgram() <span class="overload">[1/8]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::ExternalProgram </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>commandline</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a>&#160;</td>
          <td class="paramname"><em>stderr_disp</em> = <code><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>use_pty</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>stderr_fd</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>default_locale</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;&#160;</td>
          <td class="paramname"><em>root</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start the external program by using the shell <code>/bin/sh<code> with the option <code>-c</code>. </code></code></p>
<p>You can use io direction symbols &lt; and &gt;. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">commandline</td><td>a shell commandline that is appended to <code>/bin/sh -c</code>. </td></tr>
    <tr><td class="paramname">default_locale</td><td>whether to set LC_ALL=C before starting </td></tr>
    <tr><td class="paramname">root</td><td>directory to chroot into; or just 'cd' if '/'l; nothing if empty </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00045">45</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="a040f7a07960008292ab4352fe9222502"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a040f7a07960008292ab4352fe9222502">&#9670;&nbsp;</a></span>ExternalProgram() <span class="overload">[2/8]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::ExternalProgram </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start an external program by giving the arguments as an arry of char *pointers. </p>
<p>If environment is provided, varaiables will be added to the childs environment, overwriting existing ones.</p>
<p>Initial args starting with <code>#</code> are discarded but some are treated specially: #/[path] - chdir to /[path] before executing</p>
<p>Stdin redirection: If the <b>1st</b> argument starts with a <b>'&lt;'</b>, the remaining part is treated as file opened for reading on standard input (or <code>/dev/null</code> if empty). </p><div class="fragment"><div class="line"><span class="comment">// cat file /tmp/x</span></div><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* argv[] = { <span class="stringliteral">&quot;&lt;/tmp/x&quot;</span>, <span class="stringliteral">&quot;cat&quot;</span>, NULL };</div><div class="line"><a class="code" href="classzypp_1_1ExternalProgram.html#a040f7a07960008292ab4352fe9222502">ExternalProgram</a> prog( argv );</div></div><!-- fragment --><p>Stdout redirection: If the <b>1st</b> argument starts with a <b>'&gt;'</b>, the remaining part is treated as file opened for writing on standard output (or <code>/dev/null</code> if empty). </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00039">39</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="a581d1ff6d6036568d0c19a776e7d90d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a581d1ff6d6036568d0c19a776e7d90d3">&#9670;&nbsp;</a></span>ExternalProgram() <span class="overload">[3/8]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::ExternalProgram </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1ExternalProgram.html#a569290605b69ca72af7d274b507394b6">Arguments</a> &amp;&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a>&#160;</td>
          <td class="paramname"><em>stderr_disp</em> = <code><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>use_pty</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>stderr_fd</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>default_locale</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;&#160;</td>
          <td class="paramname"><em>root</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00064">64</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="aa43a79455d4969b77e449f842ac85017"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa43a79455d4969b77e449f842ac85017">&#9670;&nbsp;</a></span>ExternalProgram() <span class="overload">[4/8]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::ExternalProgram </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1ExternalProgram.html#a569290605b69ca72af7d274b507394b6">Arguments</a> &amp;&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &amp;&#160;</td>
          <td class="paramname"><em>environment</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a>&#160;</td>
          <td class="paramname"><em>stderr_disp</em> = <code><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>use_pty</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>stderr_fd</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>default_locale</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;&#160;</td>
          <td class="paramname"><em>root</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00086">86</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="ac1779a600c2355f80dc372512d6b58af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1779a600c2355f80dc372512d6b58af">&#9670;&nbsp;</a></span>ExternalProgram() <span class="overload">[5/8]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::ExternalProgram </td>
          <td>(</td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a>&#160;</td>
          <td class="paramname"><em>stderr_disp</em> = <code><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>use_pty</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>stderr_fd</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>default_locale</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;&#160;</td>
          <td class="paramname"><em>root</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00110">110</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="a6a163d5c4bf9b6f9adaeeaffdda25b29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a163d5c4bf9b6f9adaeeaffdda25b29">&#9670;&nbsp;</a></span>ExternalProgram() <span class="overload">[6/8]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::ExternalProgram </td>
          <td>(</td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &amp;&#160;</td>
          <td class="paramname"><em>environment</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a>&#160;</td>
          <td class="paramname"><em>stderr_disp</em> = <code><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>use_pty</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>stderr_fd</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>default_locale</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &amp;&#160;</td>
          <td class="paramname"><em>root</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00123">123</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="a3276a8493be6563566c9c8ee19206e41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3276a8493be6563566c9c8ee19206e41">&#9670;&nbsp;</a></span>ExternalProgram() <span class="overload">[7/8]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::ExternalProgram </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>binpath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>argv_1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>use_pty</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00137">137</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="a6b3981bee16711bb542980472d9dd698"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b3981bee16711bb542980472d9dd698">&#9670;&nbsp;</a></span>ExternalProgram() <span class="overload">[8/8]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::ExternalProgram </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>binpath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>argv_1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &amp;&#160;</td>
          <td class="paramname"><em>environment</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>use_pty</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00153">153</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="a46b21ffc8bb9952598b43ee8d09a9ad6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46b21ffc8bb9952598b43ee8d09a9ad6">&#9670;&nbsp;</a></span>~ExternalProgram()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">zypp::ExternalProgram::~ExternalProgram </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00170">170</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ac72fa79ccdbaa0f7fc9560b291dd4216"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac72fa79ccdbaa0f7fc9560b291dd4216">&#9670;&nbsp;</a></span>close()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int zypp::ExternalProgram::close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Wait for the progamm to complete. </p>

<p>Reimplemented from <a class="el" href="classzypp_1_1externalprogram_1_1ExternalDataSource.html#a8f5e8ffbfcc1c5b35e11028af6b88049">zypp::externalprogram::ExternalDataSource</a>.</p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00436">436</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="aa129e22e8025a60ac51334a1d6603557"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa129e22e8025a60ac51334a1d6603557">&#9670;&nbsp;</a></span>kill()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classbool.html">bool</a> zypp::ExternalProgram::kill </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Kill the program. </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00554">554</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="ab4c16f7ec7df54ea23dd6c6da2621506"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4c16f7ec7df54ea23dd6c6da2621506">&#9670;&nbsp;</a></span>running()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classbool.html">bool</a> zypp::ExternalProgram::running </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return whether program is running. </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00566">566</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="aa5c5a8efac167c1d4f80408e144b496b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5c5a8efac167c1d4f80408e144b496b">&#9670;&nbsp;</a></span>getpid()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">pid_t zypp::ExternalProgram::getpid </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>return pid </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00166">166</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<a id="ae0369899f0c0f36b68f6001704b90486"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0369899f0c0f36b68f6001704b90486">&#9670;&nbsp;</a></span>command()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::string&amp; zypp::ExternalProgram::command </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The command we're executing. </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00169">169</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<a id="a018285fba95217aac0581a5d4c6a486a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a018285fba95217aac0581a5d4c6a486a">&#9670;&nbsp;</a></span>execError()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::string&amp; zypp::ExternalProgram::execError </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Some detail telling why the execution failed, if it failed. </p>
<p>Empty if the command is still running or successfully completed.</p>
<ul>
<li><code>Can't open pty (s).</code> </li>
<li><code>Can't open pipe (s).</code> </li>
<li><code>Can't fork (s).</code> </li>
<li><code>Command exited with status d.</code> </li>
<li><code>Command was killed by signal d (s).</code> </li>
</ul>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00181">181</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<a id="a49fa63cc024e0ca3c2c4eed2fc5fa886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49fa63cc024e0ca3c2c4eed2fc5fa886">&#9670;&nbsp;</a></span>renumber_fd()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void zypp::ExternalProgram::renumber_fd </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>origfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>newfd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>origfd will be accessible as newfd and closed (unless they were equal) </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00590">590</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="a0a1faace69250c6503249866fc032a29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a1faace69250c6503249866fc032a29">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; zypp::ExternalProgram::operator&gt;&gt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>out_r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Redirect all command output to an <code>ostream</code>. </p>
<p>Returns when the command has completed. </p><div class="fragment"><div class="line">std::ostringstream s;</div><div class="line"><a class="code" href="classzypp_1_1ExternalProgram.html#a040f7a07960008292ab4352fe9222502">ExternalProgram</a>(<span class="stringliteral">&quot;pwd&quot;</span>) &gt;&gt; s;</div><div class="line"><a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga8bc5e463885769f21393880576c25f6b">SEC</a> &lt;&lt; s.str() &lt;&lt; endl;</div></div><!-- fragment --> <div class="fragment"><div class="line">std::ostringstream s;</div><div class="line"><a class="code" href="classzypp_1_1ExternalProgram.html#a040f7a07960008292ab4352fe9222502">ExternalProgram</a> prog(<span class="stringliteral">&quot;ls -l wrzl&quot;</span>);</div><div class="line">prog &gt;&gt; s;</div><div class="line"><span class="keywordflow">if</span> ( prog.close() == 0 )</div><div class="line">  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> &lt;&lt; s.str() &lt;&lt; endl;</div><div class="line"><span class="keywordflow">else</span></div><div class="line">  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> &lt;&lt; prog.execError() &lt;&lt; endl;</div></div><!-- fragment --> 
<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00602">602</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="ab87d9b758aac614609d44474830a87f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab87d9b758aac614609d44474830a87f6">&#9670;&nbsp;</a></span>checkStatus()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int zypp::ExternalProgram::checkStatus </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00514">514</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<a id="a802c71b92315c2ca8807b1051b59a51d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a802c71b92315c2ca8807b1051b59a51d">&#9670;&nbsp;</a></span>start_program()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void zypp::ExternalProgram::start_program </td>
          <td>(</td>
          <td class="paramtype">const char *const *&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &amp;&#160;</td>
          <td class="paramname"><em>environment</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65ba">Stderr_Disposition</a>&#160;</td>
          <td class="paramname"><em>stderr_disp</em> = <code><a class="el" href="classzypp_1_1ExternalProgram.html#addd37559311e2d7c296f7f8d3bbb65baaac502ca3423fc4b90c6f89e869cdb715">Normal_Stderr</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>stderr_fd</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>default_locale</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>root</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>switch_pgid</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8cc_source.html#l00181">181</a> of file <a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="accd1acdef68fbfa933382d173674ee7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accd1acdef68fbfa933382d173674ee7c">&#9670;&nbsp;</a></span>use_pty</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classbool.html">bool</a> zypp::ExternalProgram::use_pty</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set to true, if a pair of ttys is used for communication instead of a pair of pipes. </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00220">220</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<a id="aaf21ec7648fcea7018bb0d618e0388b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf21ec7648fcea7018bb0d618e0388b4">&#9670;&nbsp;</a></span>pid</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">pid_t zypp::ExternalProgram::pid</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00222">222</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<a id="a08dbc19897ea3c07c7971e5bd34785ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08dbc19897ea3c07c7971e5bd34785ce">&#9670;&nbsp;</a></span>_exitStatus</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int zypp::ExternalProgram::_exitStatus</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00223">223</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<a id="aa3bab1d99c1b1b38db123e3e0089340f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3bab1d99c1b1b38db123e3e0089340f">&#9670;&nbsp;</a></span>_command</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string zypp::ExternalProgram::_command</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Store the command we're executing. </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00225">225</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<a id="a45a585ab184005cdc7a51f07a48f3ce2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45a585ab184005cdc7a51f07a48f3ce2">&#9670;&nbsp;</a></span>_execError</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string zypp::ExternalProgram::_execError</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remember execution errors like failed fork/exec. </p>

<p class="definition">Definition at line <a class="el" href="ExternalProgram_8h_source.html#l00227">227</a> of file <a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>zypp/<a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a></li>
<li>zypp/<a class="el" href="ExternalProgram_8cc_source.html">ExternalProgram.cc</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacezypp.html">zypp</a></li><li class="navelem"><a class="el" href="classzypp_1_1ExternalProgram.html">ExternalProgram</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>