<!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&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  <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&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&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> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> | <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 <<a class="el" href="ExternalProgram_8h_source.html">ExternalProgram.h</a>></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  </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"> </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"> </td></tr> <tr class="memitem:a569290605b69ca72af7d274b507394b6"><td class="memItemLeft" align="right" valign="top">typedef std::vector< std::string > </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"> </td></tr> <tr class="memitem:a1fef621d0905ca4e274d87974e6f1598"><td class="memItemLeft" align="right" valign="top">typedef std::map< std::string, std::string > </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"> </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"> </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"> </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> &root="")</td></tr> <tr class="memdesc:a1d401194136399180580974100b241dd"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a040f7a07960008292ab4352fe9222502"><td class="memItemLeft" align="right" valign="top"> </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"> </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"> </td></tr> <tr class="memitem:a581d1ff6d6036568d0c19a776e7d90d3"><td class="memItemLeft" align="right" valign="top"> </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> &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> &root="")</td></tr> <tr class="separator:a581d1ff6d6036568d0c19a776e7d90d3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa43a79455d4969b77e449f842ac85017"><td class="memItemLeft" align="right" valign="top"> </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> &argv, const <a class="el" href="classzypp_1_1ExternalProgram.html#a1fef621d0905ca4e274d87974e6f1598">Environment</a> &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> &root="")</td></tr> <tr class="separator:aa43a79455d4969b77e449f842ac85017"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1779a600c2355f80dc372512d6b58af"><td class="memItemLeft" align="right" valign="top"> </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> &root="")</td></tr> <tr class="separator:ac1779a600c2355f80dc372512d6b58af"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6a163d5c4bf9b6f9adaeeaffdda25b29"><td class="memItemLeft" align="right" valign="top"> </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> &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> &root="")</td></tr> <tr class="separator:a6a163d5c4bf9b6f9adaeeaffdda25b29"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3276a8493be6563566c9c8ee19206e41"><td class="memItemLeft" align="right" valign="top"> </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"> </td></tr> <tr class="memitem:a6b3981bee16711bb542980472d9dd698"><td class="memItemLeft" align="right" valign="top"> </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> &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"> </td></tr> <tr class="memitem:a46b21ffc8bb9952598b43ee8d09a9ad6"><td class="memItemLeft" align="right" valign="top"> </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"> </td></tr> <tr class="memitem:ac72fa79ccdbaa0f7fc9560b291dd4216"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> <tr class="memitem:aa129e22e8025a60ac51334a1d6603557"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </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"> </td><td class="mdescRight">Kill the program. <a href="#aa129e22e8025a60ac51334a1d6603557">More...</a><br /></td></tr> <tr class="separator:aa129e22e8025a60ac51334a1d6603557"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab4c16f7ec7df54ea23dd6c6da2621506"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </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"> </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"> </td></tr> <tr class="memitem:aa5c5a8efac167c1d4f80408e144b496b"><td class="memItemLeft" align="right" valign="top">pid_t </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"> </td><td class="mdescRight">return pid <a href="#aa5c5a8efac167c1d4f80408e144b496b">More...</a><br /></td></tr> <tr class="separator:aa5c5a8efac167c1d4f80408e144b496b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae0369899f0c0f36b68f6001704b90486"><td class="memItemLeft" align="right" valign="top">const std::string & </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"> </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"> </td></tr> <tr class="memitem:a018285fba95217aac0581a5d4c6a486a"><td class="memItemLeft" align="right" valign="top">const std::string & </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"> </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"> </td></tr> <tr class="memitem:a0a1faace69250c6503249866fc032a29"><td class="memItemLeft" align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1ExternalProgram.html#a0a1faace69250c6503249866fc032a29">operator>></a> (std::ostream &out_r)</td></tr> <tr class="memdesc:a0a1faace69250c6503249866fc032a29"><td class="mdescLeft"> </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"> </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="-"/> 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"> </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"> </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"> </td></tr> <tr class="memitem:ae85a762d51d914a0b6a1789a4f7018ae inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">virtual </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"> </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"> </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> </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"> </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"> </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> </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"> </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"> </td></tr> <tr class="memitem:a31d4e8fa40cc16b1fbcadd57314676f3 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">size_t </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"> </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"> </td></tr> <tr class="memitem:a8211df39b7e79e32164f6a4d32fd513d inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">std::string </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"> </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"> </td></tr> <tr class="memitem:a6ece1dd9f2729aeb7c2df5ad8912c457 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">std::string </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"> </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"> </td></tr> <tr class="memitem:a9029e82f96a523406da9897c39f33840 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> <tr class="memitem:a623060692346cec538bf83c86684da02 inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">FILE * </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"> </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"> </td></tr> <tr class="memitem:a7e0c4186177d77f56957bd65ff3fdd1e inherit pub_methods_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">FILE * </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"> </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"> </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 </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"> </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"> </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 </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"> </td></tr> <tr class="memitem:a802c71b92315c2ca8807b1051b59a51d"><td class="memItemLeft" align="right" valign="top">void </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> &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"> </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> </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"> </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"> </td></tr> <tr class="memitem:aaf21ec7648fcea7018bb0d618e0388b4"><td class="memItemLeft" align="right" valign="top">pid_t </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"> </td></tr> <tr class="memitem:a08dbc19897ea3c07c7971e5bd34785ce"><td class="memItemLeft" align="right" valign="top">int </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"> </td></tr> <tr class="memitem:aa3bab1d99c1b1b38db123e3e0089340f"><td class="memItemLeft" align="right" valign="top">std::string </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"> </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"> </td></tr> <tr class="memitem:a45a585ab184005cdc7a51f07a48f3ce2"><td class="memItemLeft" align="right" valign="top">std::string </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"> </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"> </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="-"/> 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 * </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"> </td></tr> <tr class="memitem:aa2aa468b009c738dffe16770fcddf2ab inherit pro_attribs_classzypp_1_1externalprogram_1_1ExternalDataSource"><td class="memItemLeft" align="right" valign="top">FILE * </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"> </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">"/usr/bin/foo,</span></div><div class="line"><span class="stringliteral"> "</span>--option1<span class="stringliteral">",</span></div><div class="line"><span class="stringliteral"> "</span>--option2<span class="stringliteral">",</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 << 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">◆ </a></span>Arguments</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef std::vector<std::string> <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">◆ </a></span>Environment</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef std::map<std::string,std::string> <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">◆ </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 </td><td class="fielddoc"></td></tr> <tr><td class="fieldname"><a id="addd37559311e2d7c296f7f8d3bbb65baa44c201571387f6a9700543e654f38ad0"></a>Discard_Stderr </td><td class="fielddoc"></td></tr> <tr><td class="fieldname"><a id="addd37559311e2d7c296f7f8d3bbb65baaaba72a64b32a67070ba03a24f0d3d6b0"></a>Stderr_To_Stdout </td><td class="fielddoc"></td></tr> <tr><td class="fieldname"><a id="addd37559311e2d7c296f7f8d3bbb65baa414ec6bf2a827352490d2f6fe346fd40"></a>Stderr_To_FileDesc </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 & Destructor Documentation</h2> <a id="a1d401194136399180580974100b241dd"></a> <h2 class="memtitle"><span class="permalink"><a href="#a1d401194136399180580974100b241dd">◆ </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 </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> </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> </td> <td class="paramname"><em>use_pty</em> = <code>false</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> </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> & </td> <td class="paramname"><em>root</em> = <code>""</code> </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 < and >. </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">◆ </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>'<'</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">"</tmp/x"</span>, <span class="stringliteral">"cat"</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>'>'</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">◆ </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> & </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> </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> </td> <td class="paramname"><em>use_pty</em> = <code>false</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> </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> & </td> <td class="paramname"><em>root</em> = <code>""</code> </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">◆ </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> & </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> & </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> </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> </td> <td class="paramname"><em>use_pty</em> = <code>false</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> </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> & </td> <td class="paramname"><em>root</em> = <code>""</code> </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">◆ </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 * </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> </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> </td> <td class="paramname"><em>use_pty</em> = <code>false</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> </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> & </td> <td class="paramname"><em>root</em> = <code>""</code> </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">◆ </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 * </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> & </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> </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> </td> <td class="paramname"><em>use_pty</em> = <code>false</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> </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> & </td> <td class="paramname"><em>root</em> = <code>""</code> </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">◆ </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 * </td> <td class="paramname"><em>binpath</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char *const * </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> </td> <td class="paramname"><em>use_pty</em> = <code>false</code> </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">◆ </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 * </td> <td class="paramname"><em>binpath</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char *const * </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> & </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> </td> <td class="paramname"><em>use_pty</em> = <code>false</code> </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">◆ </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">◆ </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">◆ </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">◆ </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">◆ </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">◆ </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& 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">◆ </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& 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">◆ </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 </td> <td class="paramname"><em>origfd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>newfd</em> </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">◆ </a></span>operator>>()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::ostream & zypp::ExternalProgram::operator>> </td> <td>(</td> <td class="paramtype">std::ostream & </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">"pwd"</span>) >> s;</div><div class="line"><a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga8bc5e463885769f21393880576c25f6b">SEC</a> << s.str() << 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">"ls -l wrzl"</span>);</div><div class="line">prog >> 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> << s.str() << 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> << prog.execError() << 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">◆ </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 </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">◆ </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 * </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> & </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> </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 </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> </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 * </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> </td> <td class="paramname"><em>switch_pgid</em> = <code>false</code> </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">◆ </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">◆ </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">◆ </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">◆ </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">◆ </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>