<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Safe Tcl</title> </head> <body> <h1>Safe Tcl</h1> <p>íÅÈÁÎÉÚÍ ÓÏÚÄÁÎÉÑ É ÕÐÒÁ×ÌÅÎÉÑ ÂÅÚÏÐÁÓÎÙÍÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁÍÉ.</p> <h2><a name="óéîôáëóéó"></a>óéîôáëóéó</h2> <pre> <a href="#safe::interpCreate">::safe::interpCreate</a> ?<em>slave</em>? ?<em>options</em>...? <a href="#safe::interpInit">::safe::interpInit</a> <em>slave</em> ?<em>options</em>...? <a href="#safe::interpConfigure">::safe::interpConfigure</a> <em>slave</em> ?<em>options</em>...? <a href="#safe::interpDelete">::safe::interpDelete</a> <em>slave</em> <a href="#safe::interpAddToAccessPath">::safe::interpAddToAccessPath</a> <em>slave</em> <em>directory</em> <a href="#safe::interpFindInAccessPath">::safe::interpFindInAccessPath</a> <em>slave</em> <em>directory</em> <a href="#safe::setLogCmd">::safe::setLogCmd</a> ?<em>cmd</em> <em>arg</em>...? </pre> <h2><a name="ïðéóáîéå"></a>ïðéóáîéå</h2> <p><strong>Safe Tcl</strong> - ÜÔÏ ÍÅÈÁÎÉÚÍ ÂÅÚÏÐÁÓÎÏÇÏ ÉÓÐÏÌÎÅÎÉÑ ÎÅÎÁÄÅÖÎÙÈ Tcl ÓËÒÉÐÔÏ× É ÐÒÅÄÏÓÔÁ×ÌÅÎÉÑ ÜÔÉÍ ÓËÒÉÐÔÁÍ ÏÐÏÓÒÅÄÏ×ÁÎÎÏÇÏ ÄÏÓÔÕÐÁ Ë ÐÏÔÅÎÃÉÁÌØÎÏ ÏÐÁÓÎÙÍ ÆÕÎËÃÉÑÍ.</p> <p><strong>Safe Tcl</strong> ÓÌÕÖÉÔ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÎÅÎÁÄÅÖÎÙÅ ÓËÒÉÐÔÙ ÎÅ ÓÍÏÇÌÉ ÎÁÒÕÛÉÔØ ÒÁÂÏÔÕ ×ÙÚÙ×ÁÀÝÅÇÏ ÉÈ ÐÒÉÌÏÖÅÎÉÑ: ÏÎ ÐÒÅÄÏÔ×ÒÁÝÁÅÔ ÐÏËÕÛÅÎÉÑ ÎÁ ÎÅÓÁÎËÃÉÏÎÉÒÏ×ÁÎÎÙÊ ÄÏÓÔÕÐ Ë ÉÎÆÏÒÍÁÃÉÉ É ÎÁÒÕÛÅÎÉÅ ÃÅÌÏÓÔÎÏÓÔÉ ×ÙÚÙ×ÁÀÝÅÇÏ ÜÔÏÔ ÓËÒÉÐÔ ÐÒÏÃÅÓÓÁ.</p> <p><strong>Safe Tcl</strong> ÐÏÚ×ÏÌÑÅÔ ÉÎÔÅÒÐÒÅÔÁÔÏÒÕ-ÐÒÅÄËÕ ÓÏÚÄÁ×ÁÔØ ÂÅÚÏÐÁÓÎÙÅ ÉÎÔÅÒÐÒÅÔÁÔÏÒÙ Ó ÏÇÒÁÎÉÞÅÎÎÙÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ, × ËÏÔÏÒÙÈ ÓÏÄÅÒÖÉÔÓÑ ÎÁÂÏÒ ÐÒÅÄÏÐÒÅÄÅÌÅÎÎÙÈ ÓÉÎÏÎÉÍÏ× ÄÌÑ ËÏÍÁÎÄ <a href="source.html"><strong>source</strong></a>, <a href="load.html"><strong>load</strong></a>, <a href="file.html"><strong>file</strong></a> É <a href="exit.html"><strong>exit</strong></a> É ÓÏÈÒÁÎÑÀÔÓÑ ×ÏÚÍÏÖÎÏÓÔÉ Á×ÔÏÚÁÇÒÕÚËÉ ËÏÍÁÎÄ É ÐÁËÅÔÏ×.</p> <p>âÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÎÅ ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÉÔØ ËÁËÕÀ-ÌÉÂÏ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÔÒÕËÔÕÒÅ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ, ÐÏÓËÏÌØËÕ ÄÌÑ ÄÏÓÔÕÐÁ Ë ÆÁÊÌÁÍ × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÐÅÃÉÁÌØÎÙÅ ÍÅÔËÉ. ëÏÇÄÁ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÚÁÐÒÁÛÉ×ÁÅÔ ÄÏÓÔÕÐ Ë ÆÁÊÌÕ, ÏÎ ÉÓÐÏÌØÚÕÅÔ ÍÅÔËÕ ËÁË ÞÁÓÔØ ×ÉÒÔÕÁÌØÎÏÇÏ ÉÍÅÎÉ ÆÁÊÌÁ. òÏÄÉÔÅÌØÓËÉÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÚÁÍÅÎÑÅÔ ÍÅÔËÕ ÎÁ ÒÅÁÌØÎÏÅ ÉÍÑ ËÁÔÁÌÏÇÁ É ×ÙÐÏÌÎÑÅÔ ÔÒÅÂÕÅÍÕÀ ÏÐÅÒÁÃÉÀ Ó ÆÁÊÌÏÍ. ó ÐÏÍÏÝØÀ ÏÐÃÉÊ ËÏÍÁÎÄ, ÏÐÉÓÁÎÎÙÈ ÎÉÖÅ, ÍÏÖÎÏ ×ÙÂÒÁÔØ ÔÒÅÂÕÅÍÙÊ ÕÒÏ×ÅÎØ ÂÅÚÏÐÁÓÎÏÓÔÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ.</p> <p>÷ÓÅ ËÏÍÁÎÄÙ ÄÌÑ ÒÁÂÏÔÙ Ó ÂÅÚÏÐÁÓÎÙÍÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁÍÉ ÓÏÄÅÒÖÁÔÓÑ × ÐÒÏÓÔÒÁÎÓÔ×Å ÉÍÅÎ safe. ëÏÍÁÎÄÁ <a href= "#safe::interpCreate"><strong>::safe::interpCreate</strong></a> ÓÏÚÄÁÅÔ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ. ÷ÏÚÍÏÖÎÙÅ ÏÐÃÉÉ ËÏÍÁÎÄÙ ÏÐÉÓÁÎÙ ÎÉÖÅ, ÓÍ. "<a href="#ïðãéé">ïÐÃÉÉ</a>".</p> <p>ëÏÍÁÎÄÁ ×ÏÚ×ÒÁÝÁÅÔ ÉÍÑ ÓÏÚÄÁÎÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. ëÏÍÁÎÄÁ <a href="#safe::interpInit"><strong>::safe::interpInit</strong></a> ÁÎÁÌÏÇÉÞÎÁ, ÎÏ ÅÅ ÐÅÒ×ÙÍ ÁÒÇÕÍÅÎÔÏÍ ÄÏÌÖÎÏ ÂÙÔØ ÉÍÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, ÓÏÚÄÁÎÎÏÇÏ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ <a href= "interp.html"><strong>interp</strong></a>. ëÏÍÁÎÄÁ <a href= "#safe::interpDelete"><strong>::safe::interpDelete</strong></a> ÕÄÁÌÑÅÔ ÉÎÔÅÒÐÒÅÔÁÔÏÒ, ÉÍÑ ËÏÔÏÒÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÏ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ. ëÏÍÁÎÄÁ <a href="#safe::interpConfigure" ><strong>::safe::interpConfigure</strong></a> ÐÏÚ×ÏÌÑÅÔ ÚÁÄÁÔØ ÏÐÃÉÉ ÄÌÑ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÉÌÉ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÚÁÄÁÎÎÙÈ ÒÁÎÅÅ ÏÐÃÉÑÈ. ðÏÄÒÏÂÎÏ ÏÐÃÉÉ ÏÐÉÓÁÎÙ ÎÉÖÅ (ÓÍ. "<a href="#ïðãéé">ïÐÃÉÉ</a>").</p> <p>äÌÑ ËÁÖÄÏÇÏ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, ÓÏÚÄÁÎÎÏÇÏ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ <a href="#safe::interpCreate"><strong>::safe::interpCreate</strong></a> ÉÌÉ ÉÎÉÃÉÉÒÏ×ÁÎÎÏÇÏ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ <a href="#safe::interpInit"><strong>::safe::interpInit</strong></a> × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÓÏÚÄÁÅÔÓÑ ÓÐÉÓÏË ÄÏÓÔÕÐÎÙÈ ËÁÔÁÌÏÇÏ× - ×ÉÒÔÕÁÌØÎÙÊ ÐÕÔØ. ëÁÖÄÙÊ ËÁÔÁÌÏÇ × ÐÕÔÉ Ó×ÑÚÙ×ÁÅÔÓÑ Ó ÒÅÁÌØÎÙÍ ËÁÔÁÌÏÇÏÍ ÌÏËÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ É Ó ÍÅÔËÏÊ, ÄÏÓÔÕÐÎÏÊ × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ. ÷ ÒÅÚÕÌØÔÁÔÅ ÎÁÄÅÖÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÏÂÈÏÄÉÔÓÑ ÂÅÚ Ó×ÅÄÅÎÉÊ Ï ÒÅÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ ÎÁ ÍÁÛÉÎÅ, ÎÁ ËÏÔÏÒÏÊ ÉÓÐÏÌÎÑÅÔÓÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒ. ëÏÇÄÁ × ÎÁÄÅÖÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÉÓÐÏÌØÚÕÅÔÓÑ ÍÅÔËÁ ÄÌÑ ÄÏÓÔÕÐÁ Ë ËÏÎËÒÅÔÎÏÍÕ ÆÁÊÌÕ (ÎÁÐÒÉÍÅÒ, ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄÙ <a href="source.html"><strong>source</strong></a> ÉÌÉ <a href="load.html"><strong>load</strong></a>), ÍÅÔËÁ ÚÁÍÅÎÑÅÔÓÑ × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÎÁ ÎÁÓÔÏÑÝÅÅ ÉÍÑ ËÁÔÁÌÏÇÁ É ÎÅÏÂÈÏÄÉÍÙÊ ÆÁÊÌ ÉÝÅÔÓÑ × ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ. îÁÄÅÖÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÎÅ ÐÏÌÕÞÁÅÔ Ó×ÅÄÅÎÉÊ Ï ÒÅÁÌØÎÏÍ ÉÍÅÎÉ ÆÁÊÌÁ × ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ. äÌÑ ÒÁÂÏÔÙ Ó ×ÉÒÔÕÁÌØÎÙÍÉ ÉÍÅÎÁÍÉ ÆÁÊÌÏ× ÐÒÅÄÕÓÍÏÔÒÅÎÙ ÓÐÅÃÉÁÌØÎÙÅ ËÏÍÁÎÄÙ. ëÏÍÁÎÄÁ <a href= "#safe::interpConfigure"><strong>::safe::interpConfigure</strong></a> ÐÏÚ×ÏÌÑÅÔ ÚÁÄÁ×ÁÔØ ÎÏ×ÙÊ ×ÉÒÔÕÁÌØÎÙÊ ÐÕÔØ ÄÌÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. ëÏÍÁÎÄÁ <a href="#safe::interpAddToAccessPath" ><strong>::safe::interpAddToAccessPath</strong></a> ÐÏÚ×ÏÌÑÅÔ ÄÏÂÁ×ÌÑÔØ ËÁÔÁÌÏÇÉ Ë ×ÉÒÔÕÁÌØÎÏÍÕ ÐÕÔÉ ÕËÁÚÁÎÎÏÇÏ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. ëÏÍÁÎÄÁ <a href="#safe::interpFindInAccessPath" ><strong>::safe::interpFindInAccessPath</strong></a> ÐÏÚ×ÏÌÑÅÔ ÎÁÊÔÉ ËÁÔÁÌÏÇ × ×ÉÒÔÕÁÌØÎÏÍ ÐÕÔÉ ÄÌÑ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ É ÐÏÌÕÞÉÔØ ÅÇÏ ÍÅÔËÕ. åÓÌÉ ËÁÔÁÌÏÇ ÎÅ ÎÁÊÄÅÎ, ×ÙÄÁÅÔÓÑ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ.</p> <p>ëÏÍÁÎÄÁ <a href="#safe::setLogCmd" ><strong>::safe::setLogCommand</strong></a> ÐÏÚ×ÏÌÑÅÔ ÚÁÄÁÔØ ÓËÒÉÐÔ, ËÏÔÏÒÙÊ ×ÙÐÏÌÎÑÅÔÓÑ ÐÒÉ ËÁÖÄÏÍ ÓÏÂÙÔÉÉ × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ. üÔÏÔ ÓËÒÉÐÔ ×ÙÚÙ×ÁÅÔÓÑ Ó ÏÄÎÉÍ ÁÒÇÕÍÅÎÔÏÍ - ÓÔÒÏËÏÊ, ÓÏÄÅÒÖÁÝÅÊ ÏÐÉÓÁÎÉÅ ÓÏÂÙÔÉÑ.</p> <h2><a name="óéîïîéíù"></a>óéîïîéíù</h2> <p>ðÒÉ ÓÏÚÄÁÎÉÉ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ × ÎÅÍ ÏÐÒÅÄÅÌÑÀÔÓÑ ÓÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ - ÓÉÎÏÎÉÍÙ:</p> <dl> <dt><strong>source</strong> <em>fileName</em></dt> <dd>áÎÁÌÏÇÉÞÎÁ ËÏÍÁÎÄÅ <a href="source.html"><strong>source</strong></a>, ÏÄÎÁËÏ ÐÏÚ×ÏÌÑÅÔ ÒÁÂÏÔÁÔØ ÔÏÌØËÏ Ó ÆÁÊÌÁÍÉ × ×ÉÒÔÕÁÌØÎÏÍ ÐÕÔÉ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. éÍÑ ÆÁÊÌÁ <em>fileName</em> ÄÏÌÖÎÏ ÓÏÄÅÒÖÁÔØ ÏÄÎÕ ÉÚ ÍÅÔÏË, ÏÐÒÅÄÅÌÅÎÎÙÈ ÄÌÑ ËÁÔÁÌÏÇÏ× × ×ÉÒÔÕÁÌØÎÏÍ ÐÕÔÉ. äÏÐÕÓÔÉÍÙÅ ÉÍÅÎÁ ÆÁÊÌÏ× ÂÏÌÅÅ ÐÏÄÒÏÂÎÏ ÏÐÉÓÁÎÙ ÎÉÖÅ (ÓÍ. "<a href="#âåúïðáóîïóôø">âÅÚÏÐÁÓÎÏÓÔØ</a>"). </dd> <dt><strong>load</strong> <em>fileName</em></dt> <dd>ôÒÅÂÕÅÍÙÊ ÆÁÊÌ (ÏÂÙÞÎÏ, ÏÂßÅËÔÎÙÊ ÆÁÊÌ ÉÚ ÒÁÚÄÅÌÑÅÍÏÊ ÂÉÂÌÉÏÔÅËÉ) ÚÁÇÒÕÖÁÅÔÓÑ × ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ, ÅÓÌÉ ÅÇÏ ÕÄÁÅÔÓÑ ÎÁÊÔÉ. éÍÑ ÆÁÊÌÁ ÄÏÌÖÎÏ ÓÏÄÅÒÖÁÔØ ÏÄÎÕ ÉÚ ÍÅÔÏË ÄÌÑ ËÁÔÁÌÏÇÏ× ×ÉÒÔÕÁÌØÎÏÇÏ ÐÕÔÉ. ëÒÏÍÅ ÔÏÇÏ, ÒÁÚÄÅÌÑÅÍÙÊ ÏÂßÅËÔÎÙÊ ÆÁÊÌ ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ ÂÅÚÏÐÁÓÎÕÀ ÔÏÞËÕ ×ÈÏÄÁ. ðÏÄÒÏÂÎÏÓÔÉ ÐÒÉ×ÅÄÅÎÙ × ÏÐÉÓÁÎÉÉ ËÏÍÁÎÄÙ <a href="load.html"><strong>load</strong></a>. </dd> <dt><strong>file</strong> ?<em>options</em>?</dt> <dd>óÉÎÏÎÉÍ ËÏÍÁÎÄÙ <a href="file.html"><strong>file</strong></a> ÓÏÄÅÒÖÉÔ ÔÏÌØËÏ ÂÅÚÏÐÁÓÎÙÅ ÐÏÄËÏÍÁÎÄÙ ÏÂÙÞÎÏÊ ËÏÍÁÎÄÙ <a href= "file.html"><strong>file</strong></a>, Á ÉÍÅÎÎÏ: <a href="file.html#dirname"><strong>dirname</strong></a>, <a href="file.html#join"><strong>join</strong></a>, <a href="file.html#extension"><strong>extension</strong></a>, <a href="file.html#rootname"><strong>root</strong></a>, <a href="file.html#tail"><strong>tail</strong></a>, <a href="file.html#pathname"><strong>pathname</strong></a> É <a href="file.html#split"><strong>split</strong></a>. îÁÚÎÁÞÅÎÉÅ ÐÏÄËÏÍÁÎÄ ÐÒÉ×ÅÄÅÎÏ × ÏÐÉÓÁÎÉÉ ËÏÍÁÎÄÙ <a href="file.html"><strong>file</strong></a>. </dd> <dt><strong>exit</strong></dt> <dd>ðÒÉ ×ÙÐÏÌÎÅÎÉÉ ËÏÍÁÎÄÙ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÕÄÁÌÑÅÔÓÑ, ×ÙÞÉÓÌÅÎÉÑ × ÎÅÍ ÐÒÅÒÙ×ÁÀÔÓÑ, ÎÏ ÒÏÄÉÔÅÌØÓËÉÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÐÒÏÄÏÌÖÁÅÔ ÓÕÝÅÓÔ×Ï×ÁÔØ. </dd> </dl> <h2><a name="ëïíáîäù"></a>ëïíáîäù</h2> <p>÷ ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÄÌÑ ÒÁÂÏÔÙ Ó ÂÅÚÏÐÁÓÎÙÍÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁÍÉ ÐÒÅÄÕÓÍÏÔÒÅÎÙ ÓÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ:</p> <dl> <dt><a name="safe::interpCreate"></a><strong>::safe::interpCreate</strong> ?<em>slave</em>? ?<em>options</em>...?</dt> <dd>óÏÚÄÁÅÔ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ, ÉÎÉÃÉÁÌÉÚÉÒÕÅÔ × ÎÅÍ ËÏÍÁÎÄÙ - ÓÉÎÏÎÉÍÙ, ÏÐÉÓÁÎÎÙÅ ×ÙÛÅ, É ÍÅÈÁÎÉÚÍÙ Á×ÔÏÚÁÇÒÕÚËÉ ËÏÍÁÎÄ É ÐÁËÅÔÏ× × ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ÚÁÄÁÎÎÙÍÉ ÏÐÃÉÑÍÉ (ÓÍ. "<a href="#ïðãéé">ïÐÃÉÉ</a>"). åÓÌÉ ÁÒÇÕÍÅÎÔ slave ÏÔÓÕÔÓÔ×ÕÅÔ, ÉÍÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÆÏÒÍÉÒÕÅÔÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ. ëÏÍÁÎÄÁ ×ÓÅÇÄÁ ×ÏÚ×ÒÁÝÁÅÔ ÉÍÑ ÓÏÚÄÁÎÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. </dd> <dt><a name="safe::interpInit"></a><strong>::safe::interpInit</strong> <em>slave</em> ?<em>options</em>...?</dt> <dd>ëÏÍÁÎÄÁ ÁÎÁÌÏÇÉÞÎÁ ÐÒÅÄÙÄÕÝÅÊ, ÏÄÎÁËÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÄÏÌÖÅÎ ÂÙÔØ ÕÖÅ ÓÏÚÄÁÎ ËÁËÉÍ-ÌÉÂÏ ÉÎÙÍ ÓÐÏÓÏÂÏÍ, ÎÁÐÒÉÍÅÒ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ <strong>::interp create-safe</strong>. </dd> <dt><a name="safe::interpConfigure"></a><strong>::safe::interpConfigure</strong> <em>slave</em> ?<em>options</em>...?</dt> <dd>åÓÌÉ ÏÐÃÉÉ ÎÅ ÚÁÄÁÎÙ, ×ÏÚ×ÒÁÝÁÅÔ ÚÎÁÞÅÎÉÑ ×ÓÅÈ ÏÐÃÉÊ ÄÌÑ ÕËÁÚÁÎÎÏÇÏ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÕËÁÚÁÎÎÙÅ ÚÎÁÞÅÎÉÑ ÏÐÃÉÊ (ÐÏÄÒÏÂÎÅÅ ÓÍ. "<a href="#ïðãéé">ïÐÃÉÉ</a>"). </dd> <dt><a name="safe::interpDelete"> </a><strong>::safe::interpDelete</strong> <em>slave</em></dt> <dd>õÄÁÌÑÅÔ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ É ×ÙÞÉÝÁÅÔ × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÉÎÆÏÒÍÁÃÉÀ Ï ÎÅÍ. ðÅÒÅÄ ÕÄÁÌÅÎÉÅÍ ×ÙÐÏÌÎÑÅÔÓÑ ÓËÒÉÐÔ, ÚÁÄÁÎÎÙÊ Ó ÐÏÍÏÝØÀ ÏÐÃÉÉ <strong> -deletehook</strong>, ÅÓÌÉ ÏÎ ÂÙÌ ÚÁÄÁÎ. ë ÓËÒÉÐÔÕ ÄÏÂÁ×ÌÑÅÔÓÑ ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ - ÉÍÑ ÕÄÁÌÑÅÍÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. </dd> <dt><a name="safe::interpFindInAccessPath"> </a><strong>::safe::interpFindInAccessPath</strong> <em>slave</em> <em>directory</em></dt> <dd> ëÏÍÁÎÄÁ ×ÏÚ×ÒÁÝÁÅÔ ÍÅÔËÕ, ËÏÔÏÒÕÀ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÄÌÑ ËÁÔÁÌÏÇÁ <em>directory</em>. åÓÌÉ × ×ÉÒÔÕÁÌØÎÏÍ ÐÕÔÉ ÎÅÔ ÔÁËÏÇÏ ËÁÔÁÌÏÇÁ, ×ÏÚ×ÒÁÝÁÅÔÓÑ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ. ðÒÉÍÅÒ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ËÏÍÁÎÄÙ: <pre> ###óÏÚÄÁÎÉÅ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ::safe::interpCreate qqq ###ðÒÉÓ×ÁÉ×ÁÎÉÅ ÐÅÒÅÍÅÎÎÏÊ tk_library ÍÅÔËÉ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ËÁÔÁÌÏÇÁ qqq eval [list set tk_library \ [::safe::interpFindInAccessPath qqq $tk_library]] ###÷ÙÐÏÌÎÅÎÉÅ ËÏÍÁÎÄÙ source × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ qqq eval source \$tk_library/msgbox.tcl </pre> </dd> <dt><a name="safe::interpAddToAccessPath"> </a><strong>::safe::interpAddToAccessPath</strong> <em>slave</em> <em>directory</em></dt> <dd> ëÏÍÁÎÄÁ ÐÏÚ×ÏÌÑÅÔ ÄÏÂÁ×ÉÔØ Ë ×ÉÒÔÕÁÌØÎÏÍÕ ÐÕÔÉ ÕËÁÚÁÎÎÏÇÏ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ËÁÔÁÌÏÇ <em>directory</em>. ëÏÍÁÎÄÁ ×ÏÚ×ÒÁÝÁÅÔ ÚÎÁÞÅÎÉÅ ÍÅÔËÉ ÄÌÑ ËÁÔÁÌÏÇÁ <em> directory</em>. åÓÌÉ ËÁÔÁÌÏÇ ÕÖÅ ÓÏÄÅÒÖÁÌÓÑ × ×ÉÒÔÕÁÌØÎÏÍ ÐÕÔÉ, ËÏÍÁÎÄÁ ÔÏÌØËÏ ×ÏÚ×ÒÁÝÁÅÔ ÅÇÏ ÍÅÔËÕ É ÎÅ ÄÏÂÁ×ÌÑÅÔ ÅÇÏ × ×ÉÒÔÕÁÌØÎÙÊ ÐÕÔØ. ðÒÉÍÅÒ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ËÏÍÁÎÄÙ (ÓÍ. ÐÒÉÍÅÒ Ë ÐÒÅÄÙÄÕÝÅÊ ËÏÍÁÎÄÅ): <pre> ::safe::interpAddToAccessPath qqq $my_lib qqq eval source \$my_lib/\$my_file </pre> </dd> <dt><a name="safe::setLogCmd"> </a><strong>::safe::setLogCmd</strong> ?<em>cmd</em> <em>arg</em>...?</dt> <dd><p>üÔÁ ËÏÍÁÎÄÁ ÐÏÚ×ÏÌÑÅÔ ÚÁÄÁÔØ ÓËÒÉÐÔ, ËÏÔÏÒÙÊ ÂÕÄÅÔ ×ÙÐÏÌÎÑÔØÓÑ ÐÒÉ ÒÁÚÌÉÞÎÙÈ ÓÏÂÙÔÉÑÈ, Ó×ÑÚÁÎÎÙÈ Ó ÂÅÚÏÐÁÓÎÙÍÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁÍÉ. åÓÌÉ ËÏÍÁÎÄÁ ×ÙÚ×ÁÎÁ ÂÅÚ ÁÒÇÕÍÅÎÔÏ×, ÔÏ ÏÎÁ ×ÏÚ×ÒÁÝÁÅÔ ÕÓÔÁÎÏ×ÌÅÎÎÙÊ ÒÁÎÅÅ ÓËÒÉÐÔ. ÷ÙÚ×ÁÎÎÁÑ Ó ÏÄÎÉÍ ÁÒÇÕÍÅÎÔÏÍ - ÐÕÓÔÏÊ ÓÔÒÏËÏÊ - ËÏÍÁÎÄÁ ÕÄÁÌÑÅÔ ÕÓÔÁÎÏ×ÌÅÎÎÙÊ ÒÁÎÅÅ ÓËÒÉÐÔ É ÏÔÍÅÎÑÅÔ ÐÒÏÃÅÓÓ ÖÕÒÎÁÌÉÚÁÃÉÉ. õÓÔÁÎÏ×ÌÅÎÎÙÊ ÓËÒÉÐÔ ×ÙÐÏÌÎÑÅÔÓÑ Ó ÏÄÎÉÍ ÄÏÐÏÌÎÉÔÅÌØÎÙÍ ÁÒÇÕÍÅÎÔÏÍ - ÓÔÒÏËÏÊ, ÏÐÉÓÙ×ÁÀÝÅÊ ÓÏÂÙÔÉÅ. ïÓÎÏ×ÎÏÅ ÎÁÚÎÁÞÅÎÉÅ ËÏÍÁÎÄÙ - ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÒÉ ÏÔÌÁÄËÅ ÓËÒÉÐÔÏ×, ×ÙÐÏÌÎÑÅÍÙÈ × ÂÅÚÏÐÁÓÎÙÈ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁÈ. éÓÐÏÌØÚÕÑ ÅÅ, ×Ù ÓÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ ÐÏÌÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÏÛÉÂËÅ, × ÔÏ ×ÒÅÍÑ ËÁË ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ×ÏÚ×ÒÁÝÁÅÔ ÔÏÌØËÏ ÏÂÏÂÝÅÎÎÏÅ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ (ÜÔÏ ÐÏÚ×ÏÌÑÅÔ ÉÚÂÅÖÁÔØ ÒÁÚÇÌÁÛÅÎÉÑ × ÓÏÏÂÝÅÎÉÉ Ï ÏÛÉÂËÅ ËÏÎÆÉÄÅÎÃÉÁÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ, ÎÁÐÒÉÍÅÒ, Ï ÒÅÁÌØÎÙÈ ÉÍÅÎÁÈ ÆÁÊÌÏ×). ðÒÉÍÅÒ ÉÓÐÏÌØÚÏ×ÁÎÉÑ:</p> <pre> ::safe::setLogCmd puts stderr </pre> <p>îÉÖÅ ÐÒÉ×ÅÄÅÎ ÖÕÒÎÁÌ ÓÅÓÓÉÉ, × ËÏÔÏÒÏÊ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÐÙÔÁÅÔÓÑ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ, ËÏÔÏÒÙÊ ÎÅ ÎÁÊÄÅÎ × ×ÉÒÔÕÁÌØÎÏÍ ÐÕÔÉ. ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ ÓÁÍ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÐÏÌÕÞÁÅÔ ÐÒÉ ÜÔÏÍ ÔÏÌØËÏ ÓÏÏÂÝÅÎÉÅ Ï ÔÏÍ, ÞÔÏ ÆÁÊÌ ÎÅ ÎÁÊÄÅÎ:</p> <pre> NOTICE for slave interp10 : Created NOTICE for slave interp10 : Setting accessPath=(/foo/bar) staticsok=1 nestedok=0 deletehook=() NOTICE for slave interp10 : auto_path in interp10 has been set to {$p(:0:)} ERROR for slave interp10 : /foo/bar/init.tcl: no such file or directory </pre> </dd> </dl> <h2><a name="ïðãéé"></a>ïðãéé</h2> <p>äÌÑ ËÏÍÁÎÄ <strong>::safe::interpCreate</strong>, <strong>::safe::interpInit</strong>, É <strong>:safe::interpConfigure</strong> ÏÐÒÅÄÅÌÅÎÙ ÐÅÒÅÞÉÓÌÅÎÎÙÅ ÎÉÖÅ ÏÐÃÉÉ. éÍÅÎÁ ÏÐÃÉÊ ÍÏÇÕÔ ÂÙÔØ ÓÏËÒÁÝÅÎÙ ÄÏ ÍÉÎÉÍÁÌØÎÙÈ ÏÄÎÏÚÎÁÞÎÙÈ ÉÍÅÎ. éÍÅÎÁ ÏÐÃÉÊ ÎÅ ÞÕ×ÓÔ×ÉÔÅÌØÎÙ Ë ÒÅÇÉÓÔÒÕ, × ËÏÔÏÒÏÍ ÏÎÉ ÎÁÂÒÁÎÙ.</p> <dl> <dt><strong>-accessPath</strong> ?<em>directoryList</em>?</dt> <dd>ïÐÃÉÑ ÚÁÄÁÅÔ ÓÐÉÓÏË ËÁÔÁÌÏÇÏ×, Ë ËÏÔÏÒÙÍ ÍÏÖÅÔ ÉÍÅÔØ ÄÏÓÔÕÐ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ, É ×ÏÚ×ÒÁÝÁÅÔ ÍÅÔËÉ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ËÁÔÁÌÏÇÏ×. åÓÌÉ ÓÐÉÓÏË ÎÅ ÚÁÄÁÎ ÉÌÉ ÅÓÌÉ ÏÎ ÐÕÓÔ, ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÐÏÌÕÞÁÅÔ ÄÏÓÔÕÐ Ë ËÁÔÁÌÏÇÁÍ, ÉÓÐÏÌØÚÕÅÍÙÍ ÄÌÑ Á×ÔÏÚÁÇÒÕÚËÉ × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ. ðÏÄÒÏÂÎÅÅ ÓÍ. "<a href="#âåúïðáóîïóôø">âÅÚÏÐÁÓÎÏÓÔØ</a>".</dd> <dt><strong>-noStatics</strong></dt> <dd>åÓÌÉ ÜÔÁ ÏÐÃÉÑ ÚÁÄÁÎÁ, ÔÏ ÎÅ ÄÏÐÕÓËÁÅÔÓÑ ÚÁÇÒÕÚËÁ ÓÔÁÔÉÞÅÓËÉ Ó×ÑÚÁÎÎÙÈ ÐÁËÅÔÏ× (ËÁË <strong>load {} Tk</strong>). ðÏ ÕÍÏÌÞÁÎÉÀ ÚÁÇÒÕÚËÁ ÔÁËÉÈ ÐÁËÅÔÏ× ÒÁÚÒÅÛÅÎÁ. </dd> <dt><strong>-nestedLoadOk</strong></dt> <dd>åÓÌÉ ÜÔÁ ÏÐÃÉÑ ÚÁÄÁÎÁ, ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÍÏÖÅÔ ÚÁÇÒÕÖÁÔØ ÐÁËÅÔÙ × ÓÏÂÓÔ×ÅÎÎÙÅ ÐÏÄÉÎÔÅÒÐÒÅÔÁÔÏÒÙ. ðÏ ÕÍÏÌÞÁÎÉÀ ÚÁÇÒÕÚËÁ ÐÁËÅÔÏ× × ÐÏÄÉÎÔÅÒÐÒÅÔÁÔÏÒÙ ÚÁÐÒÅÝÅÎÁ. </dd> <dt><strong>-deleteHook</strong> ?<em>script</em>?</dt> <dd>åÓÌÉ ÓËÒÉÐÔ ÚÁÄÁÎ, ÏÎ ×ÙÐÏÌÎÑÅÔÓÑ × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ (Ó ÄÏÐÏÌÎÉÔÅÌØÎÙÍ ÁÒÇÕÍÅÎÔÏÍ - ÉÍÅÎÅÍ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ) ÐÅÒÅÄ ÕÄÁÌÅÎÉÅÍ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. åÓÌÉ ÓËÒÉÐÔ ÎÅ ÚÁÄÁÎ, ÔÏ ÕÄÁÌÑÅÔÓÑ ÚÁÄÁÎÎÙÊ ÒÁÎÅÅ ÓËÒÉÐÔ (ÅÓÌÉ ÔÁËÏÊ ÂÙÌ) É ÎÉËÁËÉÈ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÄÅÊÓÔ×ÉÊ ÐÅÒÅÄ ÕÄÁÌÅÎÉÅÍ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÎÅ ÐÒÏÉÚ×ÏÄÉÔÓÑ. ðÏ ÕÍÏÌÞÁÎÉÀ ÓËÒÉÐÔ ÎÅ ÚÁÄÁÎ.</dd> </dl> <h2><a name="âåúïðáóîïóôø"></a>âåúïðáóîïóôø</h2> <p>Save Tcl ÎÅ ÄÁÅÔ ÐÏÌÎÏÊ ÇÁÒÁÎÔÉÉ ÂÅÚÏÐÁÓÎÏÓÔÉ. ÷ ÞÁÓÔÎÏÓÔÉ, ÏÎ ÎÅ ÚÁÝÉÝÁÅÔ ÏÔ ÁÔÁË ÎÁ ÓÅÒ×ÅÒ, ËÏÇÄÁ ÐÏÇÌÏÝÁÀÔÓÑ ×ÓÅ ÒÅÓÕÒÓÙ ÐÒÏÃÅÓÓÏÒÁ É ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÐØÀÔÅÒ ÄÌÑ ÐÏÌÅÚÎÏÊ ÒÁÂÏÔÙ. ïÄÎÁËÏ ÔÁËÉÅ ÁÔÁËÉ ÓÞÉÔÁÀÔÓÑ, ËÁË ÐÒÁ×ÉÌÏ, ÍÅÎÅÅ ÏÐÁÓÎÙÍÉ, ÞÅÍ ÎÅÓÁÎËÃÉÏÎÉÒÏ×ÁÎÎÙÊ ÄÏÓÔÕÐ Ë ÉÎÆÏÒÍÁÃÉÉ É ÎÁÒÕÛÅÎÉÅ ÃÅÌÏÓÔÎÏÓÔÉ, ÏÔ ËÏÔÏÒÙÈ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÚÁÝÉÝÁÅÔ. ÷ ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ, ÐÏÍÉÍÏ ÂÅÚÏÐÁÓÎÏÇÏ ÎÁÂÏÒÁ ËÏÍÁÎÄ, ËÏÔÏÒÙÊ ÏÐÉÓÁÎ × ÏÐÉÓÁÎÉÉ ËÏÍÁÎÄÙ <a href= "interp.html"><strong>interp</strong></a>, ÉÍÅÀÔÓÑ ÓÉÎÏÎÉÍÙ ÄÌÑ ËÏÍÁÎÄ <a href="source.html"><strong>source</strong></a>, <a href="load.html"><strong>load</strong></a>, <a href="exit.html"><strong>exit</strong></a> É ÂÅÚÏÐÁÓÎÏÅ ÐÏÄÍÎÏÖÅÓÔ×Ï ÐÏÄËÏÍÁÎÄ ËÏÍÁÎÄÙ <a href="file.html"><strong>file</strong></a>. ÷ ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ×ÏÚÍÏÖÎÁ Á×ÔÏÚÁÇÒÕÚËÁ ÂÉÂÌÉÏÔÅË É ÐÁËÅÔÏ×. ðÏÓËÏÌØËÕ ÜÔÉ ËÏÍÁÎÄÙ ÉÍÅÀÔ ÄÅÌÏ Ó ÌÏËÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÏÊ, ÓÕÝÅÓÔ×ÕÅÔ ÐÏÔÅÎÃÉÁÌØÎÁÑ ÏÐÁÓÎÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÈ ÄÌÑ ÄÏÓÔÕÐÁ Ë ËÏÎÆÉÄÅÎÃÉÁÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ. þÔÏÂÙ ÐÒÅÄÏÔ×ÒÁÔÉÔØ ÜÔÕ ×ÏÚÍÏÖÎÏÓÔØ, × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÎÅ ÎÁÓÔÏÑÝÉÅ ÉÍÅÎÁ ËÁÔÁÌÏÇÏ×, Á ÓÐÅÃÉÁÌØÎÙÅ ÍÅÔËÉ. üÔÉ ÍÅÔËÉ ÔÒÁÎÓÌÉÒÕÀÔÓÑ × ÒÅÁÌØÎÙÅ ÉÍÅÎÁ ÆÁÊÌÏ× ÔÏÌØËÏ × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ.</p> <p>þÔÏÂÙ ÉÓËÌÀÞÉÔØ ÄÏÓÔÕÐ Ë ÆÁÊÌÁÍ, ËÏÔÏÒÙÅ ÏËÁÚÁÌÉÓØ × ÓÉÌÕ ÔÅÈ ÉÌÉ ÉÎÙÈ ÐÒÉÞÉÎ × ÒÁÚÒÅÛÅÎÎÙÈ ÄÌÑ ÞÔÅÎÉÑ × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ËÁÔÁÌÏÇÁÈ, ÓÉÎÏÎÉÍ ËÏÍÁÎÄÙ <a href="source.html"><strong>source</strong></a> ÏÂÅÓÐÅÞÉ×ÁÅÔ ÄÏÓÔÕÐ ÔÏÌØËÏ Ë ÆÁÊÌÁÍ Ó ÒÁÓÛÉÒÅÎÉÅÍ tcl, × ÉÍÅÎÁÈ ËÏÔÏÒÙÈ ÓÏÄÅÒÖÉÔÓÑ ÒÏ×ÎÏ ÏÄÎÁ ÔÏÞËÁ, Á ÏÂÝÁÑ ÄÌÉÎÁ ÉÍÅÎÉ ÎÅ ÐÒÅ×ÙÛÁÅÔ ÞÅÔÙÒÎÁÄÃÁÔÉ ÓÉÍ×ÏÌÏ×.</p> <p>ðÏ ÕÍÏÌÞÁÎÉÀ × Tcl ÐÅÒÅÍÅÎÎÏÊ <em>auto_path</em> ÓÏÄÅÒÖÁÔÓÑ ÍÅÔËÉ ÄÌÑ ËÁÔÁÌÏÇÏ×, ÓÏÄÅÒÖÁÝÉÈÓÑ × ÁÎÁÌÏÇÉÞÎÏÊ ÐÅÒÅÍÅÎÎÏÊ × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ É ÉÈ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÙÈ ÐÏÄËÁÔÁÌÏÇÏ×. ðÅÒ×ÁÑ ÍÅÔËÁ × ÓÐÉÓËÅ ÐÒÉÓ×ÁÉ×ÁÅÔÓÑ ÔÁËÖÅ Tcl ÐÅÒÅÍÅÎÎÏÊ <em>tcl_library</em> ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. ÷Ù ÍÏÖÅÔÅ ÓÏËÒÁÔÉÔØ ÜÔÏÔ ÓÐÉÓÏË, × Ñ×ÎÏÍ ×ÉÄÅ ÚÁÄÁ× ÄÏÓÔÕÐÎÙÅ ËÁÔÁÌÏÇÉ ÄÌÑ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ Ó ÐÏÍÏÝØÀ ÏÐÃÉÉ <strong>-accessPath.</strong></p> <p><strong>Safe Tcl</strong> - ÜÔÏ ÍÅÈÁÎÉÚÍ ÂÅÚÏÐÁÓÎÏÇÏ ÉÓÐÏÌÎÅÎÉÑ ÎÅÎÁÄÅÖÎÙÈ Tcl ÓËÒÉÐÔÏ× É ÐÒÅÄÏÓÔÁ×ÌÅÎÉÑ ÜÔÉÍ ÓËÒÉÐÔÁÍ ÏÐÏÓÒÅÄÏ×ÁÎÎÏÇÏ ÄÏÓÔÕÐÁ Ë ÐÏÔÅÎÃÉÁÌØÎÏ ÏÐÁÓÎÙÍ ÆÕÎËÃÉÑÍ.</p> <p><strong>Safe Tcl</strong> ÓÌÕÖÉÔ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÎÅÎÁÄÅÖÎÙÅ ÓËÒÉÐÔÙ ÎÅ ÓÍÏÇÌÉ ÎÁÒÕÛÉÔØ ÒÁÂÏÔÕ ×ÙÚÙ×ÁÀÝÅÇÏ ÉÈ ÐÒÉÌÏÖÅÎÉÑ: ÏÎ ÐÒÅÄÏÔ×ÒÁÝÁÅÔ ÐÏËÕÛÅÎÉÑ ÎÁ ÎÅÓÁÎËÃÉÏÎÉÒÏ×ÁÎÎÙÊ ÄÏÓÔÕÐ Ë ÉÎÆÏÒÍÁÃÉÉ É ÎÁÒÕÛÅÎÉÅ ÃÅÌÏÓÔÎÏÓÔÉ ×ÙÚÙ×ÁÀÝÅÇÏ ÜÔÏÔ ÓËÒÉÐÔ ÐÒÏÃÅÓÓÁ.</p> <p><strong>Safe Tcl</strong> ÐÏÚ×ÏÌÑÅÔ ÉÎÔÅÒÐÒÅÔÁÔÏÒÕ-ÐÒÅÄËÕ ÓÏÚÄÁ×ÁÔØ ÂÅÚÏÐÁÓÎÙÅ ÉÎÔÅÒÐÒÅÔÁÔÏÒÙ Ó ÏÇÒÁÎÉÞÅÎÎÙÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ, × ËÏÔÏÒÙÈ ÓÏÄÅÒÖÉÔÓÑ ÎÁÂÏÒ ÐÒÅÄÏÐÒÅÄÅÌÅÎÎÙÈ ÓÉÎÏÎÉÍÏ× ÄÌÑ ËÏÍÁÎÄ <a href="source.html"><strong>source</strong></a>, <a href="load.html"><strong>load</strong></a>, <a href="file.html"><strong>file</strong></a> É <a href="exit.html"><strong>exit</strong></a> É ÓÏÈÒÁÎÑÀÔÓÑ ×ÏÚÍÏÖÎÏÓÔÉ Á×ÔÏÚÁÇÒÕÚËÉ ËÏÍÁÎÄ É ÐÁËÅÔÏ×.</p> <p>âÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÎÅ ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÉÔØ ËÁËÕÀ-ÌÉÂÏ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÔÒÕËÔÕÒÅ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ, ÐÏÓËÏÌØËÕ ÄÌÑ ÄÏÓÔÕÐÁ Ë ÆÁÊÌÁÍ × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÐÅÃÉÁÌØÎÙÅ ÍÅÔËÉ. ëÏÇÄÁ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÚÁÐÒÁÛÉ×ÁÅÔ ÄÏÓÔÕÐ Ë ÆÁÊÌÕ, ÏÎ ÉÓÐÏÌØÚÕÅÔ ÍÅÔËÕ ËÁË ÞÁÓÔØ ×ÉÒÔÕÁÌØÎÏÇÏ ÉÍÅÎÉ ÆÁÊÌÁ. òÏÄÉÔÅÌØÓËÉÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÚÁÍÅÎÑÅÔ ÍÅÔËÕ ÎÁ ÒÅÁÌØÎÏÅ ÉÍÑ ËÁÔÁÌÏÇÁ É ×ÙÐÏÌÎÑÅÔ ÔÒÅÂÕÅÍÕÀ ÏÐÅÒÁÃÉÀ Ó ÆÁÊÌÏÍ. ó ÐÏÍÏÝØÀ ÏÐÃÉÊ ËÏÍÁÎÄ, ÏÐÉÓÁÎÎÙÈ ÎÉÖÅ, ÍÏÖÎÏ ×ÙÂÒÁÔØ ÔÒÅÂÕÅÍÙÊ ÕÒÏ×ÅÎØ ÂÅÚÏÐÁÓÎÏÓÔÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ.</p> <p>÷ÓÅ ËÏÍÁÎÄÙ ÄÌÑ ÒÁÂÏÔÙ Ó ÂÅÚÏÐÁÓÎÙÍÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁÍÉ ÓÏÄÅÒÖÁÔÓÑ × ÐÒÏÓÔÒÁÎÓÔ×Å ÉÍÅÎ safe. ëÏÍÁÎÄÁ <strong>::safe::interpCreate</strong> ÓÏÚÄÁÅÔ ÂÅÚÏÐÁÓÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ. ÷ÏÚÍÏÖÎÙÅ ÏÐÃÉÉ ËÏÍÁÎÄÙ ÏÐÉÓÁÎÙ ÎÉÖÅ, ÓÍ. <a href="#ïðãéé">"ïÐÃÉÉ"</a>.</p> <p>ëÏÍÁÎÄÁ ×ÏÚ×ÒÁÝÁÅÔ ÉÍÑ ÓÏÚÄÁÎÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. ëÏÍÁÎÄÁ <strong>::safe::interpInit</strong> ÁÎÁÌÏÇÉÞÎÁ, ÎÏ ÅÅ ÐÅÒ×ÙÍ ÁÒÇÕÍÅÎÔÏÍ ÄÏÌÖÎÏ ÂÙÔØ ÉÍÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, ÓÏÚÄÁÎÎÏÇÏ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ <strong><a href="interp.html">interp</a></strong>.</p> <p>ëÏÍÁÎÄÁ <strong>::safe::interpDelete</strong> ÕÄÁÌÑÅÔ ÉÎÔÅÒÐÒÅÔÁÔÏÒ, ÉÍÑ ËÏÔÏÒÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÏ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ. ëÏÍÁÎÄÁ <strong>::safe::interpConfigure</strong> ÐÏÚ×ÏÌÑÅÔ ÚÁÄÁÔØ ÏÐÃÉÉ ÄÌÑ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÉÌÉ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÚÁÄÁÎÎÙÈ ÒÁÎÅÅ ÏÐÃÉÑÈ. ðÏÄÒÏÂÎÏ ÏÐÃÉÉ ÏÐÉÓÁÎÙ ÎÉÖÅ (ÓÍ. <a href="#ïðãéé">"ïÐÃÉÉ"</a>).</p> <p>äÌÑ ËÁÖÄÏÇÏ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, ÓÏÚÄÁÎÎÏÇÏ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ <strong>::safe::interpCreate</strong> ÉÌÉ ÉÎÉÃÉÉÒÏ×ÁÎÎÏÇÏ Ó ÐÏÍÏÝØÀ ËÏÍÁÎÄÙ <strong>::safe::interpInit</strong> × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÓÏÚÄÁÅÔÓÑ ÓÐÉÓÏË ÄÏÓÔÕÐÎÙÈ ËÁÔÁÌÏÇÏ× - ×ÉÒÔÕÁÌØÎÙÊ ÐÕÔØ. ëÁÖÄÙÊ ËÁÔÁÌÏÇ × ÐÕÔÉ Ó×ÑÚÙ×ÁÅÔÓÑ Ó ÒÅÁÌØÎÙÍ ËÁÔÁÌÏÇÏÍ ÌÏËÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ É Ó ÍÅÔËÏÊ, ÄÏÓÔÕÐÎÏÊ × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ. ÷ ÒÅÚÕÌØÔÁÔÅ ÎÁÄÅÖÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÏÂÈÏÄÉÔÓÑ ÂÅÚ Ó×ÅÄÅÎÉÊ Ï ÒÅÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ ÎÁ ÍÁÛÉÎÅ, ÎÁ ËÏÔÏÒÏÊ ÉÓÐÏÌÎÑÅÔÓÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒ. ëÏÇÄÁ × ÎÁÄÅÖÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÉÓÐÏÌØÚÕÅÔÓÑ ÍÅÔËÁ ÄÌÑ ÄÏÓÔÕÐÁ Ë ËÏÎËÒÅÔÎÏÍÕ ÆÁÊÌÕ (ÎÁÐÒÉÍÅÒ, ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄÙ <a href="source.html"><strong>source</strong></a> ÉÌÉ <a href="load.html"><strong>load</strong></a>), ÍÅÔËÁ ÚÁÍÅÎÑÅÔÓÑ × ÒÏÄÉÔÅÌØÓËÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÎÁ ÎÁÓÔÏÑÝÅÅ ÉÍÑ ËÁÔÁÌÏÇÁ É ÎÅÏÂÈÏÄÉÍÙÊ ÆÁÊÌ ÉÝÅÔÓÑ × ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ. îÁÄÅÖÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÎÅ ÐÏÌÕÞÁÅÔ Ó×ÅÄÅÎÉÊ Ï ÒÅÁÌØÎÏÍ ÉÍÅÎÉ ÆÁÊÌÁ × ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ. äÌÑ ÒÁÂÏÔÙ Ó ×ÉÒÔÕÁÌØÎÙÍÉ ÉÍÅÎÁÍÉ ÆÁÊÌÏ× ÐÒÅÄÕÓÍÏÔÒÅÎÙ ÓÐÅÃÉÁÌØÎÙÅ ËÏÍÁÎÄÙ. ëÏÍÁÎÄÁ <strong>::safe::interpConfigure</strong> ÐÏÚ×ÏÌÑÅÔ ÚÁÄÁ×ÁÔØ ÎÏ×ÙÊ ×ÉÒÔÕÁÌØÎÙÊ ÐÕÔØ ÄÌÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. ëÏÍÁÎÄÁ <strong>::safe::interpAddToAccessPath</strong> ÐÏÚ×ÏÌÑÅÔ ÄÏÂÁ×ÌÑÔØ ËÁÔÁÌÏÇÉ Ë ×ÉÒÔÕÁÌØÎÏÍÕ ÐÕÔÉ ÕËÁÚÁÎÎÏÇÏ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ. ëÏÍÁÎÄÁ <strong>::safe::interpFindInAccessPath</strong> ÐÏÚ×ÏÌÑÅÔ ÎÁÊÔÉ ËÁÔÁÌÏÇ × ×ÉÒÔÕÁÌØÎÏÍ ÐÕÔÉ ÄÌÑ ÂÅÚÏÐÁÓÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ É ÐÏÌÕÞÉÔØ ÅÇÏ ÍÅÔËÕ. åÓÌÉ ËÁÔÁÌÏÇ ÎÅ ÎÁÊÄÅÎ, ×ÙÄÁÅÔÓÑ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ.</p> <p>ëÏÍÁÎÄÁ <strong>::safe::setLogCommand</strong> ÐÏÚ×ÏÌÑÅÔ ÚÁÄÁÔØ ÓËÒÉÐÔ, ËÏÔÏÒÙÊ ×ÙÐÏÌÎÑÅÔÓÑ ÐÒÉ ËÁÖÄÏÍ ÓÏÂÙÔÉÉ × ÂÅÚÏÐÁÓÎÏÍ ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ. üÔÏÔ ÓËÒÉÐÔ ×ÙÚÙ×ÁÅÔÓÑ Ó ÏÄÎÉÍ ÁÒÇÕÍÅÎÔÏÍ - ÓÔÒÏËÏÊ, ÓÏÄÅÒÖÁÝÅÊ ÏÐÉÓÁÎÉÅ ÓÏÂÙÔÉÑ.</p> </body> </html>