<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEIDR3k_cCp7ImA9WhRQGUs.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509</id><updated>2011-12-15T18:29:36.748+02:00</updated><category term="win" /><category term="csc" /><category term="eclipse" /><category term="cdt" /><category term="MSVC" /><category term="gdb" /><category term="bash" /><category term="unix" /><category term="stl" /><category term=".NET" /><category term="utilities" /><title>/spk/dev</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://spkdev.blogspot.com/" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/spkdev" /><feedburner:info uri="spkdev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;Ck8AQ3c5fip7ImA9WhdUEkg.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-6845385277870309674</id><published>2011-09-28T20:45:00.001+03:00</published><updated>2011-09-29T02:00:42.926+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T02:00:42.926+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="win" /><category scheme="http://www.blogger.com/atom/ns#" term="utilities" /><title>Dependency Walker</title><content type="html">&lt;div style="text-align: justify;"&gt;The description from &lt;a href="http://www.dependencywalker.com/" target="_blank" title="Dependency Walker official page"&gt;official page&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
"Dependency Walker is a free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. ...&lt;br /&gt;
&lt;br /&gt;
Dependency Walker is also very useful for troubleshooting system errors related to loading and executing modules. Dependency Walker detects many common application problems such as missing modules, invalid modules, import/export mismatches, circular dependency errors, mismatched machine types of modules, and module initialization failures."&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-6845385277870309674?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/spkdev?a=JS13O-38M9Y:7Y-lv1UMwLs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/spkdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/spkdev?a=JS13O-38M9Y:7Y-lv1UMwLs:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/spkdev?i=JS13O-38M9Y:7Y-lv1UMwLs:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/JS13O-38M9Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/6845385277870309674/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2011/09/dependency-walker.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/6845385277870309674?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/6845385277870309674?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/JS13O-38M9Y/dependency-walker.html" title="Dependency Walker" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2011/09/dependency-walker.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8BQXk5cSp7ImA9WhdUEkg.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-579699720729018123</id><published>2011-09-21T12:59:00.000+03:00</published><updated>2011-09-29T02:00:50.729+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T02:00:50.729+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MSVC" /><title>C2813</title><content type="html">&lt;div style="text-align: justify;"&gt;Побороть &lt;a href="http://msdn.microsoft.com/en-us/library/bb384890(v=vs.90).aspx" target="_blank"&gt;C2813&lt;/a&gt; из-за &lt;a href="http://msdn.microsoft.com/en-us/library/bb385193.aspx"  target="_blank"&gt;/MP4&lt;/a&gt; можно дополнительно указав параметр /MP1 в свойствах файла в котором возникает ошибка компиляции.

&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-579699720729018123?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/spkdev?a=hpIznNTCtIk:v6L0MmqLtpI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/spkdev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/spkdev?a=hpIznNTCtIk:v6L0MmqLtpI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/spkdev?i=hpIznNTCtIk:v6L0MmqLtpI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/hpIznNTCtIk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/579699720729018123/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2011/09/c2813.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/579699720729018123?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/579699720729018123?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/hpIznNTCtIk/c2813.html" title="C2813" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2011/09/c2813.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkADSH48fyp7ImA9WhdUEkg.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-398011372441407331</id><published>2008-06-05T20:49:00.007+03:00</published><updated>2011-09-29T01:59:39.077+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T01:59:39.077+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MSVC" /><title>VS tricks: C++ include directories from file</title><content type="html">&lt;div style="text-align: justify;"&gt;Небольшой трюк для быстрого переноса общих настроек с одного проекта в другой в случае с MS Visual Studio. Опробовано было на 2005й студии, но должно работать и на других.&lt;br /&gt;&lt;br /&gt;В данном случае, будут переноситься include directories, но наверное так можно переносить и другие настройки..&lt;/div&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;div style="text-align: justify;"&gt;1. Создаем, собственно, файл с настройками и сохраняем его в папке с solution-ом. В случае include directories в себе он должен содержать, например, следующее:&lt;pre&gt;&lt;br /&gt;/I..\Include&lt;br /&gt;/I..\CoeffTables&lt;br /&gt;/I..\Views&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2. Открываем свойства проекта. Идем следующим путем:&lt;br /&gt;&lt;code&gt;Configuration Properties -&gt; C/C++ -&gt; Command Line -&gt; Additional options: &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Вписываем туда путь к файлу в виде:&lt;br /&gt;&lt;code&gt;@filepath/filename&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;4. Несколько файлов разделяются пробелами:&lt;br /&gt;&lt;code&gt;@file1path/file1name @file2path/file2name&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Плюсы:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;быстрая конфигурация проектов;&lt;/li&gt;&lt;li&gt;файл с настройками можно генерить автоматически;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;i&gt;Минусы:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;в случае с include directories, нельзя перейти к файлу из IDE.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;i&gt;Вывод:&lt;/i&gt;&lt;/b&gt; Решение можно использовать для небольших проектов, состоящих из большого количества модулей. Например, для разработки плагинов.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-398011372441407331?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/spkdev?a=js2BsFih"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/spkdev?a=TdMVvKU3"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?i=TdMVvKU3" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/Fx_qutgl2KA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/398011372441407331/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2008/06/vs-trick-c-include-directories-from.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/398011372441407331?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/398011372441407331?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/Fx_qutgl2KA/vs-trick-c-include-directories-from.html" title="VS tricks: C++ include directories from file" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2008/06/vs-trick-c-include-directories-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkABQ3g-fCp7ImA9WhdUEkg.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-6576021273933758011</id><published>2008-04-03T20:15:00.003+03:00</published><updated>2011-09-29T01:59:12.654+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T01:59:12.654+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gdb" /><category scheme="http://www.blogger.com/atom/ns#" term="stl" /><title>inline особенности отладки с GDB</title><content type="html">&lt;div style="text-align: justify;"&gt;При отладке с &lt;code&gt;GDB&lt;/code&gt; в пошаговом режиме, в некоторых как оказалось определенных случаях, команда &lt;code&gt;step&lt;/code&gt; вместо ожидаемого перехода в функцию (даже из текущего модуля), подобно ивану сусанину, заводит в непроходимые дебри исходников &lt;code&gt;STL&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;В процессе продолжительного гуглования причина выяснилась, STL оказался ни при чем. Описанное же поведение проявляется на &lt;code&gt;inline&lt;/code&gt; функциях (напр., при выводе в тот же &lt;code&gt;cout&lt;/code&gt;).&lt;br /&gt;&lt;br /&gt;В качестве очевидного решения напрашивается собирать дебажную версию проекта без встраивания &lt;code&gt;inline&lt;/code&gt; функций, т.е. игнорируя ключевое слово &lt;code&gt;inline&lt;/code&gt;. С &lt;code&gt;GCC&lt;/code&gt;, используя флажок &lt;code&gt;-fno-inline&lt;/code&gt;, это сделать совершенно несложно. Решение кривоватое, имхо, но дебажиться становится несколько проще. &lt;/div&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;i&gt;linkdump&lt;/i&gt;&lt;/b&gt; по результатам инвестигейшна.&lt;br /&gt;&lt;br /&gt;Из архива переписки &lt;code&gt;gcc@gcc.gnu.org&lt;/code&gt;: &lt;blockquote&gt;The bug is partly Gdb, partly the stabs debug format, and partly the emitted debugging information.&lt;/blockquote&gt; Полностью можно ознакомиться &lt;a href="http://gcc.gnu.org/ml/gcc/1999-11/msg00710.html" target="_blank"&gt;тут&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sourceware.org/ml/gdb/2002-02/msg00283.html" target="_blank"&gt;Аналогичный bug-report в mail-list архиве &lt;code&gt;gdb@sources.redhat.com&lt;/code&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vladimir_prus.blogspot.com/2007/11/breakpoints-in-constructors.html" target="_blank"&gt;История по отлавливании бряк в конструкторах&lt;/a&gt;. Большинство записей в &lt;a href="http://vladimir_prus.blogspot.com/" target="_blank"&gt;блоге&lt;/a&gt;, кстати, про отладку и GDB.&lt;br /&gt;&lt;br /&gt;Параметры для GCC: &lt;a href="http://linfoline.homedns.org/gcc27/gcc1-2.html" target="_blank"&gt;на русском&lt;/a&gt;, &lt;a href="http://www.onlamp.com/pub/a/onlamp/2007/04/03/getting-familiar-with-gcc-parameters.html" target="_blank"&gt;на onlamp.com&lt;/a&gt; :)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-6576021273933758011?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/spkdev?a=UUB1r0Nr"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/spkdev?a=qANdIgcd"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?i=qANdIgcd" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/n6IPD7TGop8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/6576021273933758011/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2008/04/inline-gdb.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/6576021273933758011?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/6576021273933758011?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/n6IPD7TGop8/inline-gdb.html" title="inline особенности отладки с GDB" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2008/04/inline-gdb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMBR30_eyp7ImA9WxZXFEw.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-1282029537819032503</id><published>2008-02-29T18:19:00.009+02:00</published><updated>2008-03-02T00:27:36.343+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-02T00:27:36.343+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cdt" /><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><title>how to add C++ header's directory in Eclipse</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;определение переменной окружения &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Project properties -&gt; C/C++ Build -&gt; Environment&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;добавляем новую переменную &lt;code&gt;BOOST&lt;/code&gt; со значением &lt;code&gt;D:\libs\boost_1_34_1&lt;/code&gt;.&lt;br /&gt;почему-то со значением &lt;code&gt;D:\libs\boost_1_34_1\&lt;/code&gt; (разница в слеше на конце) хедеры не находились.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;добавление в проект пути к хедерам &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Project properties -&gt; C/C++ Build -&gt; Settings -&gt; GCC C++ Compiler -&gt; Directories&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;добавляем новое значение: &lt;code&gt;${BOOST}&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-1282029537819032503?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/spkdev?a=AnepuIns"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/spkdev?a=IyPXo3dO"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?i=IyPXo3dO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/96-H88Z1UPE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/1282029537819032503/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2008/02/how-to-add-c-hearers-directory-in.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/1282029537819032503?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/1282029537819032503?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/96-H88Z1UPE/how-to-add-c-hearers-directory-in.html" title="how to add C++ header's directory in Eclipse" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2008/02/how-to-add-c-hearers-directory-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAGSHY4fSp7ImA9WhdUEkg.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-4527771691378908142</id><published>2008-02-20T20:47:00.002+02:00</published><updated>2011-09-29T01:58:49.835+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T01:58:49.835+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bash" /><title>первые функции на баше</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;определение функций&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;фунцию на баше можно определить так: &lt;pre&gt;&lt;strong&gt;function&lt;/strong&gt; function_name {&lt;br /&gt;#commands..&lt;br /&gt;}&lt;/pre&gt;можно так:&lt;pre&gt;function_name () {&lt;br /&gt;#commands..&lt;br /&gt;}&lt;/pre&gt;в принципе, у меня получилось и так:&lt;pre&gt;&lt;strong&gt;function&lt;/strong&gt; function_name () {&lt;br /&gt;#commands..&lt;br /&gt;}&lt;/pre&gt; &lt;/div&gt;&lt;span id="fullpost"&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://gazette.lrn.ru/rus/articles/abs-guide/c12745.html" target="_blank"&gt;здесь&lt;/a&gt; рекомендуют использовать способ номер два в силу его большей переносимости. &lt;br /&gt;&lt;span style="font-size:78%;"&gt;кстати, &lt;a href="http://gazette.lrn.ru/rus/articles/abs-guide/index.html" target="_blank"&gt;неплохая дока по башу с большим количеством примеров&lt;/a&gt; :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;возвращение значений из функций&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;здесь сюрпрайз. в баше есть встроеная команда &lt;code&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/code&gt;, используя которую можно завершить выполнение функции в необходимый момент. почти как в C++. отличие в том, что &lt;code&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/code&gt; ничего НЕ возвращает :) &lt;code&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/code&gt; всего лишь записывает код завершения функции в глобальную переменную &lt;code&gt;$?&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;результат выполнения из функции можно вернуть через:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;глобальные переменные;&lt;/li&gt;&lt;li&gt;команду вывода в стандартный поток &lt;code&gt;&lt;strong&gt;echo&lt;/strong&gt;&lt;/code&gt;;&lt;/li&gt;&lt;/ol&gt;способ номер 1 вроде понятен. остается только угадывать в какой именно переменной результат.. можно принять некоторое соглашение именования переменных и для хранения результата использовать переменные FUNCT_NAME_RES1, FUNCT_NAME_RES2 и т.д.; или просто в масиве FUNCT_NAME_RES.&lt;br /&gt;&lt;br /&gt;способ номер 2 является более элегантным, согласно упоминаемой доке :) так результат выполнения функции в данном случае, цитирую, &lt;q&gt;cнимается со стандартного вывода конструкцией                     подстановки                     команд&lt;/q&gt;. что это означает проще показать на примере:&lt;pre&gt;foo () {&lt;br /&gt;&lt;code&gt;&lt;strong&gt;echo&lt;/code&gt;&lt;/strong&gt; "12"&lt;br /&gt;&lt;code&gt;&lt;strong&gt;return&lt;/code&gt;&lt;/strong&gt; 0&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;value1=`foo`&lt;/pre&gt;чему равно &lt;code&gt;value1&lt;/code&gt;? правильно -- 12. это и есть более элегантное решение. прощай, трейс-лог. превед, трейс-лог :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;косвенные ссылки на переменные&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;в двух словах, косвенные ссылки -- это обращение к переменной через ее имя, хранящееся в другой строковой переменной. подробнее и с примерами -- &lt;a href="http://gazette.lrn.ru/rus/articles/abs-guide/x4788.html#IVRREF" target="_blank"&gt;здесь&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;зачем косвенные ссылки в посте о функциях? почему-то подумалось о них как о еще одном возможном способе получения результата выполнения функций, по аналогии с ссылками в C++. но изменить значение переменной через косвенную ссылку почему-то не получилось. и если дальше продолжать аналогии с C++, то косвенная ссылка в баше -- это почти как константная ссылка в плюсах.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-4527771691378908142?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/spkdev?a=XjjjM4pJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/spkdev?a=GmTvRtgH"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?i=GmTvRtgH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/I6I8rwWCLkE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/4527771691378908142/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2008/02/blog-post_20.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/4527771691378908142?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/4527771691378908142?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/I6I8rwWCLkE/blog-post_20.html" title="первые функции на баше" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2008/02/blog-post_20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAGQ3o4fSp7ImA9WhdUEkg.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-5159377624074638065</id><published>2008-02-12T18:44:00.002+02:00</published><updated>2011-09-29T01:58:42.435+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T01:58:42.435+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="csc" /><title>.NET command-line компилятор</title><content type="html">&lt;div style="text-align: justify;"&gt;чтобы собрать небольшой проект на C# бывает достаточно командной строки. для чего достаточно наличие установленного фреймворка, без которого собственно .NET-приложение и не запустишь.&lt;br /&gt;&lt;br /&gt;C# компилятор для командной строки можно найти в директории: &lt;pre&gt;%windir%\Microsoft.NET\Framework\&lt;version&gt;&lt;/version&gt;&lt;/pre&gt;&lt;br /&gt;далее сохраняем текст программы в файл, например, с названием &lt;span style="font-style:italic;"&gt;cool_appl.cs&lt;/span&gt; и компилим:&lt;br /&gt;&lt;pre&gt;csc cool_appl.cs&lt;/pre&gt;запускаем приложение&lt;br /&gt;&lt;pre&gt;cool_appl&lt;/pre&gt;&lt;br /&gt;больше параметров для запуска компилятора можно посмотреть в &lt;a href="http://msdn2.microsoft.com/en-us/library/ms379563.aspx" target="_blank"&gt;МСДН&lt;/a&gt;е. &lt;span style="font-size:78%;"&gt; идея подсмотрена &lt;a href="http://www.tech-funda.com/?p=24" target="_blank"&gt;здесь&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-5159377624074638065?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/spkdev?a=AuOdTlwe"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/spkdev?a=zM3lCm7V"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?i=zM3lCm7V" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/2gkDC0OqZ1s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/5159377624074638065/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2008/02/net-command-line.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/5159377624074638065?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/5159377624074638065?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/2gkDC0OqZ1s/net-command-line.html" title=".NET command-line компилятор" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2008/02/net-command-line.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAFQHg6fCp7ImA9WhdUEkg.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-3398459268407564546</id><published>2008-02-11T17:19:00.005+02:00</published><updated>2011-09-29T01:58:31.614+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T01:58:31.614+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bash" /><title>памятка начинающим башерам: пробелы как часть синтакса</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight:bold;font-style:italic;"&gt;объявление переменных&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;при инициализации переменной (это когда ей присваивается значение) знак равно нельзя выделять пробелами, т.е. &lt;br /&gt;&lt;pre&gt;val1=12 #правильно&lt;br /&gt;&lt;br /&gt;val1 = 12 #неправильно&lt;br /&gt;val1= 12 #неправильно&lt;br /&gt;val1 =12 #неправильно&lt;/pre&gt;&lt;br /&gt;об этом могут сообщать следующие ошибки:&lt;br /&gt;&lt;pre&gt;&lt;ul&gt;&lt;li&gt;val1: command not found&lt;/li&gt;&lt;li&gt;12: command not found&lt;/li&gt;&lt;/ul&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight:bold;font-style:italic;"&gt;условные переходы&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;при написании на баше условных переходов (это там где &lt;code&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/code&gt;), условие (оно же предикат) должно заключаться в скобки. и скобки эти обязательно должны быть окружены пробелами. т.е.:&lt;br /&gt;&lt;pre&gt;if [ $1 -gt 0 ]; then #правильно&lt;br /&gt;&lt;br /&gt;if[$1 -gt 0]; then #неправильно&lt;/pre&gt;&lt;br /&gt;отсутсвие пробелов сигнализируется ошибками типа:&lt;br /&gt;&lt;pre&gt;&lt;ul&gt;&lt;li&gt;syntax error near unexpected token `then'&lt;/li&gt;&lt;li&gt;[0: command not found&lt;/li&gt;&lt;/ul&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-3398459268407564546?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/spkdev?a=z1SUq5Ap"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/spkdev?a=XB2pxgoX"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?i=XB2pxgoX" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/YFPtE9hy8ZA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/3398459268407564546/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2008/02/blog-post.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/3398459268407564546?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/3398459268407564546?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/YFPtE9hy8ZA/blog-post.html" title="памятка начинающим башерам: пробелы как часть синтакса" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2008/02/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAEQHs6fyp7ImA9WhdUEkg.&quot;"><id>tag:blogger.com,1999:blog-7985992584888418509.post-1321936674797406273</id><published>2007-11-14T20:25:00.003+02:00</published><updated>2011-09-29T01:58:21.517+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T01:58:21.517+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="unix" /><category scheme="http://www.blogger.com/atom/ns#" term="utilities" /><title>df: свободное место на винте</title><content type="html">как узнать количество свободного места на винте под UNIX? &lt;br /&gt;&lt;br /&gt;если коротко, то утилитой &lt;code&gt;&lt;strong&gt;df&lt;/strong&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;если подробно, то &lt;code&gt;man df&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7985992584888418509-1321936674797406273?l=spkdev.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/spkdev?a=ZmW8iKAl"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/spkdev?a=H1P79AwV"&gt;&lt;img src="http://feeds.feedburner.com/~f/spkdev?i=H1P79AwV" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/spkdev/~4/Cqik6UNtrT4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://spkdev.blogspot.com/feeds/1321936674797406273/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://spkdev.blogspot.com/2007/11/blog-post.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/1321936674797406273?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7985992584888418509/posts/default/1321936674797406273?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/spkdev/~3/Cqik6UNtrT4/blog-post.html" title="df: свободное место на винте" /><author><name>Sergiy Krupyna</name><uri>https://profiles.google.com/111998558307031263179</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-qoq_9TKvl4k/AAAAAAAAAAI/AAAAAAAALmI/Wkz65N5_PFA/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://spkdev.blogspot.com/2007/11/blog-post.html</feedburner:origLink></entry></feed>

