<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>오늘도 나는</title>
    <link>https://hyem2.tistory.com/</link>
    <description>하늘을 나는 꿈을 꾼다</description>
    <language>ko</language>
    <pubDate>Mon, 1 Jun 2026 03:54:54 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>hyem_2</managingEditor>
    <item>
      <title>python read file from the bottom</title>
      <link>https://hyem2.tistory.com/entry/python-read-file-from-the-bottom</link>
      <description>&lt;pre id=&quot;code_1570686868831&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    import os
     
    with open('logfile.txt', 'rb') as f:
    f.seek(-2, os.SEEK_END)
    while f.read(1) != b'\n':
    f.seek(-2, os.SEEK_CUR)
    print(f.readline().decode())&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;출처: &lt;a href=&quot;https://www.quora.com/How-can-I-read-the-last-line-from-a-log-file-in-Python&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.quora.com/How-can-I-read-the-last-line-from-a-log-file-in-Python&lt;/a&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/50</guid>
      <comments>https://hyem2.tistory.com/entry/python-read-file-from-the-bottom#entry50comment</comments>
      <pubDate>Thu, 10 Oct 2019 14:54:34 +0900</pubDate>
    </item>
    <item>
      <title>fix invalid argument to attribute &amp;quot;__mode__&amp;quot;&amp;quot; error</title>
      <link>https://hyem2.tistory.com/entry/fix-invalid-argument-to-attribute-mode-error</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMm8SF/btquDr8zeUl/ZFvKzkD2ucSJWHElfIjzOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMm8SF/btquDr8zeUl/ZFvKzkD2ucSJWHElfIjzOK/img.png&quot; data-alt=&quot;해당 에러는 glibc 2.26~2.27 version과 관련된 문제 같다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMm8SF/btquDr8zeUl/ZFvKzkD2ucSJWHElfIjzOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMm8SF%2FbtquDr8zeUl%2FZFvKzkD2ucSJWHElfIjzOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;해당 에러는 glibc 2.26~2.27 version과 관련된 문제 같다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;해당 에러를 매뉴얼하게 고치기 위해서는 /usr/include/bits/floatn.h 파일을 조금 수정하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;original code&lt;/p&gt;
&lt;pre id=&quot;code_1555479031518&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#if (defined __x86_64__                                                 \
     ? __GNUC_PREREQ (4, 3)                                             \
     : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
# define __HAVE_FLOAT128 1
#else
# define __HAVE_FLOAT128 0
#endif&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;modified code&lt;/p&gt;
&lt;pre id=&quot;code_1555479043270&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#if (defined __x86_64__                                                 \
     ? __GNUC_PREREQ (4, 3)                                             \
     : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
//# define __HAVE_FLOAT128 1
//#else
# define __HAVE_FLOAT128 0
#endif

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/49</guid>
      <comments>https://hyem2.tistory.com/entry/fix-invalid-argument-to-attribute-mode-error#entry49comment</comments>
      <pubDate>Wed, 17 Apr 2019 14:28:04 +0900</pubDate>
    </item>
    <item>
      <title>Why do we need virtual functions in c++?</title>
      <link>https://hyem2.tistory.com/entry/Why-do-we-need-virtual-functions-in-c</link>
      <description>&lt;p&gt;Here is how I understood not just what &lt;a href=&quot;https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbclx01/cplr139.htm&quot;&gt;virtual&lt;/a&gt; functions are, but why they're required:&lt;/p&gt;
&lt;p&gt;Let's say you have these two classes:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; eat&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; std&lt;/span&gt;&lt;span&gt;::&lt;/span&gt;&lt;span&gt;cout &lt;/span&gt;&lt;span&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;I'm eating generic food.&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;};&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cat&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; eat&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; std&lt;/span&gt;&lt;span&gt;::&lt;/span&gt;&lt;span&gt;cout &lt;/span&gt;&lt;span&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;I'm eating a rat.&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;};&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In your main function:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;animal &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cat&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;cat &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cat&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; animal&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;eat&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// Outputs: &quot;I'm eating generic food.&quot;&lt;/span&gt;&lt;span&gt; cat&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;eat&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// Outputs: &quot;I'm eating a rat.&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;So far so good, right? Animals eat generic food, cats eat rats, all without virtual.&lt;/p&gt;
&lt;p&gt;Let's change it a little now so that eat() is called via an intermediate function (a trivial function just for this example):&lt;/p&gt;
&lt;p&gt;&lt;span&gt;// This can go at the top of the main.cpp file&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; func&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;xyz&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; xyz&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;eat&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now our main function is:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;animal &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cat&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;cat &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cat&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; func&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;animal&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// Outputs: &quot;I'm eating generic food.&quot;&lt;/span&gt;&lt;span&gt; func&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;cat&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// Outputs: &quot;I'm eating generic food.&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Uh oh... we passed a Cat into func(), but it won't eat rats. Should you overload func() so it takes a Cat*? If you have to derive more animals from Animal they would all need their own func().&lt;/p&gt;
&lt;p&gt;The solution is to make eat() from the Animal class a virtual function:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;virtual&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; eat&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; std&lt;/span&gt;&lt;span&gt;::&lt;/span&gt;&lt;span&gt;cout &lt;/span&gt;&lt;span&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;I'm eating generic food.&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;};&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cat&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; eat&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt; std&lt;/span&gt;&lt;span&gt;::&lt;/span&gt;&lt;span&gt;cout &lt;/span&gt;&lt;span&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;I'm eating a rat.&quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;};&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Main:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;func&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;animal&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// Outputs: &quot;I'm eating generic food.&quot;&lt;/span&gt;&lt;span&gt; func&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;cat&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// Outputs: &quot;I'm eating a rat.&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Done.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/2391679/why-do-we-need-virtual-functions-in-c&quot;&gt;https://stackoverflow.com/questions/2391679/why-do-we-need-virtual-functions-in-c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1554447678134&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/2391679/why-do-we-need-virtual-functions-in-c&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-original-url=&quot;https://stackoverflow.com/questions/2391679/why-do-we-need-virtual-functions-in-c&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/yJ33D/hyABEnVm4R/ZTKkVk2G6PKGMpBAPCtMz1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Why do we need virtual functions in C++?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;I'm learning C++ and I'm just getting into virtual functions. From what I've read (in the book and online), virtual functions are functions in the base class that you can override in derived class...&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;stackoverflow.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;binding 과 관련된 일이다..필요하면 early binding/late binding 찾아봐&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/virtual-function-cpp/&quot;&gt;https://www.geeksforgeeks.org/virtual-function-cpp/&lt;/a&gt;&lt;/p&gt;</description>
      <category>Programming Language/C++</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/48</guid>
      <comments>https://hyem2.tistory.com/entry/Why-do-we-need-virtual-functions-in-c#entry48comment</comments>
      <pubDate>Fri, 5 Apr 2019 16:01:49 +0900</pubDate>
    </item>
    <item>
      <title>running valgrind on gentoo</title>
      <link>https://hyem2.tistory.com/entry/running-valgrind-on-gentoo</link>
      <description>&lt;h3 class=&quot;post-title entry-title&quot; itemprop=&quot;name&quot;&gt;
Error running Valgrind on Gentoo Linux: the strlen problem
&lt;/h3&gt;
&lt;div class=&quot;post-header&quot;&gt;

&lt;/div&gt;

If you have ever tried to install Valgrind on Gentoo Linux you may have come across this error when you try to run the program:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;==20032== Memcheck, a memory error detector&lt;br /&gt;==20032== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.&lt;br /&gt;==20032== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info&lt;br /&gt;==20032== Command: ./1.x&lt;br /&gt;==20032==&lt;br /&gt;&lt;br /&gt;valgrind:  Fatal error at startup: a function redirection&lt;br /&gt;valgrind:  which is mandatory for this platform-tool combination&lt;br /&gt;valgrind:  cannot be set up.  Details of the redirection are:&lt;br /&gt;valgrind: &lt;br /&gt;valgrind:  A must-be-redirected function&lt;br /&gt;valgrind:  whose name matches the pattern:      strlen&lt;br /&gt;valgrind:  in an object with soname matching:   ld-linux-x86-64.so.2&lt;br /&gt;valgrind:  was not found whilst processing&lt;br /&gt;valgrind:  symbols from the object with soname: ld-linux-x86-64.so.2&lt;br /&gt;valgrind: &lt;br /&gt;valgrind:  Possible fixes: (1, short term): install glibc's debuginfo&lt;br /&gt;valgrind:  package on this machine.  (2, longer term): ask the packagers&lt;br /&gt;valgrind:  for your Linux distribution to please in future ship a non-&lt;br /&gt;valgrind:  stripped ld.so (or whatever the dynamic linker .so is called)&lt;br /&gt;valgrind:  that exports the above-named function using the standard&lt;br /&gt;valgrind:  calling conventions for this platform.  The package you need&lt;br /&gt;valgrind:  to install for fix (1) is called&lt;br /&gt;valgrind: &lt;br /&gt;valgrind:    On Debian, Ubuntu:                 libc6-dbg&lt;br /&gt;valgrind:    On SuSE, openSuSE, Fedora, RHEL:   glibc-debuginfo&lt;br /&gt;valgrind: &lt;br /&gt;valgrind:  Cannot continue -- exiting now.  Sorry.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As it turns out, this is a common error but the internet is awash with 
confusing information so I will try to help by explain what I did to get
 it working.&lt;br /&gt;
&lt;br /&gt;
You don't need to reinstall Valgrind. It's fine. But what you do need to
 do is re-install glibc but with special options enabled. Open up the 
make.conf file in vi or your favourite editor:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;vi /etc/make.conf&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The things you need to add are shown in bold:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;CFLAGS=&quot;-march=nocona &lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;-O2&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt; -pipe &lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;-ggdb -fno-builtin-strlen&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;FEATURES=&quot;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;preserve-libs nostrip splitdebug&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
When you save these changes you can reinstall glibc:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;sudo emerge glibc&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;reference : http://bioinfornetics.blogspot.com/2015/01/error-running-valgrind-on-gentoo-linux.html&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/47</guid>
      <comments>https://hyem2.tistory.com/entry/running-valgrind-on-gentoo#entry47comment</comments>
      <pubDate>Wed, 13 Mar 2019 19:39:02 +0900</pubDate>
    </item>
    <item>
      <title>vivado execution through rofi</title>
      <link>https://hyem2.tistory.com/entry/vivado-execution-through-rofi</link>
      <description>&lt;p&gt;add &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;source /vivado/settings64.sh/path&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;to ~/.profile file&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/46</guid>
      <comments>https://hyem2.tistory.com/entry/vivado-execution-through-rofi#entry46comment</comments>
      <pubDate>Thu, 31 Jan 2019 11:11:11 +0900</pubDate>
    </item>
    <item>
      <title>ubuntu 설정들</title>
      <link>https://hyem2.tistory.com/entry/ubuntu-%EC%84%A4%EC%A0%95%EB%93%A4</link>
      <description>&lt;p&gt;powerline / fontawesome font 는 font폴더에 설치를 해야함&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;network dns는 resolv.conf 파일안에거를 수정해야되는데 이건 자꾸 재설정되니까 resolvconf command를 통해하거나 ifdown/ifup을 통해해야함&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;한글설정은 uim 설치한뒤 global settings에서 default input method를 byeoru로 바꿔야함&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/45</guid>
      <comments>https://hyem2.tistory.com/entry/ubuntu-%EC%84%A4%EC%A0%95%EB%93%A4#entry45comment</comments>
      <pubDate>Mon, 21 Jan 2019 00:23:03 +0900</pubDate>
    </item>
    <item>
      <title>xserver error fix after gentoo system upgrade</title>
      <link>https://hyem2.tistory.com/entry/xserver-error-fix-after-gentoo-system-upgrade</link>
      <description>&lt;p&gt;When use NVIDIA Graphic card, drivers for graphic card should not be upgraded.&amp;nbsp;&lt;/p&gt;&lt;p&gt;It would be better download driver through NVIDIA homepage directly and install after system upgrade.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Xserver and Xorg-drivers must match with graphic card version. maybe downgrade?&lt;/p&gt;&lt;p&gt;Reinstall drivers for input devices (keyboard, mouse..) -&amp;gt; xf86-input-libinput&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Virtualbox reinstall through virtualbox homepage.&amp;nbsp;&lt;/p&gt;&lt;p&gt;maybe it can done with emerge. but virtualbox version and qt version must match, so it can be messy.&amp;nbsp;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/44</guid>
      <comments>https://hyem2.tistory.com/entry/xserver-error-fix-after-gentoo-system-upgrade#entry44comment</comments>
      <pubDate>Wed, 9 Jan 2019 11:04:40 +0900</pubDate>
    </item>
    <item>
      <title>pulseaudio daemon start fail</title>
      <link>https://hyem2.tistory.com/entry/pulseaudio-daemon-start-fail</link>
      <description>&lt;p&gt;&lt;img src=&quot;data:image/png;base64,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GqhvqthoV6nsXKymqLKav2MztpE5ku5IRPKpsL2kGiU9CnqQNBe0ggAIhAWByNUEgBZjWCxABAkCIAACIDAtCUATgJp2aDFSVNAGAiAAAiAAAuFOIHKvu4T7zCB+EAABEAABEIhcArjuErlzi8xAAARAAARAAAS8CUTC94wwpyAAAiAAAiAAAtOHAGqX6TPXyBQEQAAEQAAEIoFAGHxHmt0SiwTSyAEEQAAEQAAEQGAiCEz12uWHcbETkSZsgAAIgAAIgAAIRAgB3DOKkIlEGiAAAiAAAiAwTQigdpkmE400QQAEQAAEQCBCCKB2iZCJRBogAAIgAAIgME0IoHaZJhONNEEABEAABEAgQgigdomQiUQaIAACIAACIDBNCKB2mSYTjTRBAARAAARAIEIIoHaJkIlEGiAAAiAAAiAwTQigdpkmE400QQAEQAAEQCBCCKB2iZCJRBogAAIgAAIgME0IoHaZJhONNEEABEAABEAgQgigdomQiUQaIAACIAACIDBNCKB2mSYTjTRBAARAAARAIEIIoHaJkIlEGiAAAiAAAiAwTQigdpkmE400QQAEQAAEQCBCCKB2iZCJRBogAAIgAAIgME0IoHaZJhONNEEABEAABEAgQgigdomQiUQaIAACIAACIDBNCKB2mSYTjTRBAARAAARAIEIIoHaJkIlEGiAAAiAAAiAwTQigdpkmE400QQAEQAAEQCBCCKB2iZCJRBogAAIgAAIgME0IoHaZJhONNEEABEAABEAgQgigdomQiUQaIAACIAACIDBNCKB2mSYTjTRBAARAAARAIEIIoHaJkIlEGiAAAiAAAiAwTQigdpkmE400QQAEQAAEQCBCCKB2iZCJRBogAAIgAAIgME0IoHaZJhONNEEABEAABEAgQgigdomQiUQaIAACIAACIDBNCKB2mSYTjTRBAARAAARAIEIIoHaJkIlEGiAAAiAAAiAwTQigdpkmE400QQAEQAAEQCBCCKB2iZCJRBogAAIgAAIgME0IoHaZJhONNEEABEAABEAgQgigdomQiUQaIAACIAACIDBNCKB2mSYTjTRBAARAAARAIEIIoHaJkIlEGiAAAiAAAiAwTQigdpkmE400QQAEQAAEQCBCCKB2iZCJRBogAAIgAAIgME0IoHaZJhONNEEABEAABEAgQghMz9rF9LI2d8+VYKYwQAuf//K+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&quot; alt=&quot;&quot;&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/43</guid>
      <comments>https://hyem2.tistory.com/entry/pulseaudio-daemon-start-fail#entry43comment</comments>
      <pubDate>Wed, 14 Nov 2018 14:59:52 +0900</pubDate>
    </item>
    <item>
      <title>running DNNweaver in linux</title>
      <link>https://hyem2.tistory.com/entry/running-DNNweaver-in-linux</link>
      <description>&lt;p&gt;http://venividiwiki.ee.virginia.edu/mediawiki/index.php/DNNWeaver&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/42</guid>
      <comments>https://hyem2.tistory.com/entry/running-DNNweaver-in-linux#entry42comment</comments>
      <pubDate>Wed, 12 Sep 2018 21:43:52 +0900</pubDate>
    </item>
    <item>
      <title>how to change raspberry pi clock freq</title>
      <link>https://hyem2.tistory.com/entry/how-to-change-raspberry-pi-clock-freq</link>
      <description>&lt;p&gt;&lt;img src=&quot;data:image/png;base64,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&quot; alt=&quot;&quot;&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/41</guid>
      <comments>https://hyem2.tistory.com/entry/how-to-change-raspberry-pi-clock-freq#entry41comment</comments>
      <pubDate>Thu, 30 Aug 2018 19:59:48 +0900</pubDate>
    </item>
    <item>
      <title>python 3.5 install on debian</title>
      <link>https://hyem2.tistory.com/entry/python-35-install-on-debian</link>
      <description>&lt;p&gt;&lt;img src=&quot;data:image/png;base64,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&quot; alt=&quot;&quot; height=&quot;1237&quot; width=&quot;619&quot;&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/40</guid>
      <comments>https://hyem2.tistory.com/entry/python-35-install-on-debian#entry40comment</comments>
      <pubDate>Fri, 3 Aug 2018 10:04:45 +0900</pubDate>
    </item>
    <item>
      <title>gentoo update</title>
      <link>https://hyem2.tistory.com/entry/gentoo-update</link>
      <description>&lt;p&gt;문제발생시 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;sudo emerge -update --deep @world&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/39</guid>
      <comments>https://hyem2.tistory.com/entry/gentoo-update#entry39comment</comments>
      <pubDate>Fri, 27 Jul 2018 22:33:57 +0900</pubDate>
    </item>
    <item>
      <title>cannot set LC_CTYPE, LC_ALL</title>
      <link>https://hyem2.tistory.com/entry/cannot-set-LCCTYPE-LCALL</link>
      <description>&lt;p&gt;locale-gen 으로 사용할 locale을 활성화 해야하는것 같다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;https://wiki.archlinux.org/index.php/Locale_(%ED%95%9C%EA%B5%AD%EC%96%B4)&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/38</guid>
      <comments>https://hyem2.tistory.com/entry/cannot-set-LCCTYPE-LCALL#entry38comment</comments>
      <pubDate>Tue, 24 Jul 2018 14:27:50 +0900</pubDate>
    </item>
    <item>
      <title>zybo boot image</title>
      <link>https://hyem2.tistory.com/entry/zybo-boot-image</link>
      <description>&lt;p&gt;https://github.com/SDU-Embedded/linux_zynq/wiki/Installing-Linux-on-the-ZYBO&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/37</guid>
      <comments>https://hyem2.tistory.com/entry/zybo-boot-image#entry37comment</comments>
      <pubDate>Mon, 2 Jul 2018 17:54:37 +0900</pubDate>
    </item>
    <item>
      <title>device tree</title>
      <link>https://hyem2.tistory.com/entry/device-tree</link>
      <description>&lt;p&gt;https://elinux.org/Device_Tree_Usage&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/36</guid>
      <comments>https://hyem2.tistory.com/entry/device-tree#entry36comment</comments>
      <pubDate>Tue, 19 Jun 2018 17:01:35 +0900</pubDate>
    </item>
    <item>
      <title>installing caffe</title>
      <link>https://hyem2.tistory.com/entry/installing-caffe</link>
      <description>&lt;p&gt;isntall all library here&lt;/p&gt;&lt;p&gt;http://caffe.berkeleyvision.org/installation.html&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;BLAS: OpenBLAS for Gentoo&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;modify Makefile.config &lt;br /&gt;&lt;/p&gt;&lt;p&gt;(read the commented explanation well, and modify as it need to be&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;note: PYTHON_INCLUDE &amp;amp; PYTHON_LIBRARIES&lt;/p&gt;&lt;p&gt;PYTHON_LIBRARIES=the name of boost_python-x.x.so or just boost_python something&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;build caffe&amp;nbsp;&lt;/p&gt;&lt;p&gt;export LD_LIBRARY_PATH=/opt/OpenBLAS/lib&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;add LD_LIBRARY_PATH=&quot;/opt/OpenBLAS/lib:${LD_LIBRARY_PATH}&quot;&amp;nbsp; in bash configuration file&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;for gtk 550 ti CUDA version must be 8 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;and CUDA driver must be downloaded through NVIDIA homepage, not the package manager (e.g. portage)&lt;/p&gt;&lt;p&gt;and need to change gcc version to 5&lt;/p&gt;&lt;p&gt;gcc-config 1 (select the number version 5)&lt;/p&gt;&lt;p&gt;env-update &amp;amp;&amp;amp; source /etc/profile &amp;amp;&amp;amp; PS1=$PS1&lt;/p&gt;&lt;p&gt;emerge --ask libtool&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;gcc version later than 5 are not supported&lt;/p&gt;&lt;p&gt;check gcc version &lt;br /&gt;&lt;/p&gt;&lt;p&gt;gcc-config -l&lt;/p&gt;&lt;p&gt;gcc-config number&lt;/p&gt;&lt;p&gt;env-update &amp;amp;&amp;amp; source /etc/profile&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;install pycaffe&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;on Gentoo, install boost-numpy is necessary&lt;/p&gt;&lt;p&gt;export PYTHONPATH=/CAFFE/ROOT/python:$PYTHONPATH&lt;br /&gt;export CAFFE_ROOT=/CAFFE/ROOT&lt;br /&gt;export LD_LIBRARY_PATH=/opt/cuda/lib64:$LD_LIBRARY_PATH&lt;/p&gt;&lt;p&gt;add all export to /etc/environment or bash configuration file (e.g. .zshrc)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;and &lt;br /&gt;&lt;/p&gt;&lt;p&gt;in /CAFFE/ROOT/ &lt;br /&gt;&lt;/p&gt;&lt;p&gt;make pycaffe&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/35</guid>
      <comments>https://hyem2.tistory.com/entry/installing-caffe#entry35comment</comments>
      <pubDate>Tue, 3 Apr 2018 15:16:27 +0900</pubDate>
    </item>
    <item>
      <title>turn off beep sound on linux</title>
      <link>https://hyem2.tistory.com/entry/turn-off-beep-sound-on-linux</link>
      <description>&lt;p&gt;/etc/inputrc 파일에&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;set bell-style none&lt;/p&gt;&lt;p&gt;#set bell-style visible&lt;/p&gt;&lt;p&gt;#set bell-style audible&lt;/p&gt;&lt;p&gt;이거 아무소용없는듯...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고 shell에서 module을 끄는 명령어&lt;/p&gt;&lt;p&gt;rmmod pcspkr&lt;/p&gt;&lt;p&gt;이건 일시적&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/etc/rc.conf&lt;/p&gt;&lt;p&gt;modprobe -r pcspkr&lt;/p&gt;&lt;p&gt;이건 재부팅 해봐야 알듯&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;xset b 0 0 0&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/34</guid>
      <comments>https://hyem2.tistory.com/entry/turn-off-beep-sound-on-linux#entry34comment</comments>
      <pubDate>Thu, 22 Mar 2018 14:04:50 +0900</pubDate>
    </item>
    <item>
      <title>vivado GUI xserver permission error</title>
      <link>https://hyem2.tistory.com/entry/vivado-GUI-xserver-permission-error</link>
      <description>&lt;p&gt;/vivado/installed/path/version/lnx64/tools/clang-3.9/lib 에 있는 libz.so.1 library가 잘못된듯하다&lt;/p&gt;&lt;p&gt;해당폴더에 있는 libz.so.1을 backup 용으로 libz.so.1.old로 바꿔주고&lt;/p&gt;&lt;p&gt;시스템에 있는 라이브러리인 /lib/libz.so.1을 소프트링크로 해당 폴더에 만들어주면된다. (sudo ln -s /lib/libz.so.1)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/33</guid>
      <comments>https://hyem2.tistory.com/entry/vivado-GUI-xserver-permission-error#entry33comment</comments>
      <pubDate>Thu, 22 Mar 2018 13:54:03 +0900</pubDate>
    </item>
    <item>
      <title>printing duplex problem on linux</title>
      <link>https://hyem2.tistory.com/entry/printing-duplex-problem</link>
      <description>&lt;p&gt;two-sided print check를 했는데도 안되는 경우 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;/etc/cups/ppd/printer_name.ppd&lt;/p&gt;&lt;p&gt;*Defaultmanualduplex: off &lt;br /&gt;&lt;/p&gt;&lt;p&gt;로 바꾸고&lt;/p&gt;&lt;p&gt;*DefaultDuplex: DuplexTumble&lt;/p&gt;&lt;p&gt;로 바꾸고&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;evince에서 duplex prining이 안되는 경우 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;cups-manualduplex=off&lt;/p&gt;&lt;p&gt;cups-Duplex=DuplexNoTumble (이 설정은 필수인지 잘모르겠다. 그냥 DuplexTumble로 둬도 괜찮을 수도...)&lt;/p&gt;&lt;p&gt;아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ&lt;/p&gt;&lt;p&gt;ㅠㅠ 박사........나도 안하고싶다.........&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/32</guid>
      <comments>https://hyem2.tistory.com/entry/printing-duplex-problem#entry32comment</comments>
      <pubDate>Thu, 15 Mar 2018 21:29:04 +0900</pubDate>
    </item>
    <item>
      <title>install vivado on linux</title>
      <link>https://hyem2.tistory.com/entry/install-vivado</link>
      <description>&lt;p&gt;while vivado installing, the process stops at &quot;generating installed device list&quot;&lt;/p&gt;&lt;p&gt;turn off the vivado installing by Ctrl + c (do not cancel, then the library folder will be removed that makes you can not find the path for environment variable)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It is an error that can not load library.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To fix this, environment variable must be configured for vivado.&lt;/p&gt;&lt;p&gt;Find the path clang library, and configure &quot;LD_LIBRARY_PATH&quot;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp;LD_LIBRARY_PATH=&quot;/vivado/installed/directory/path/Vivado/2017.4/lnx64/tools/clang-3.9/lib:${LD_LIBRARY_PATH}&quot;&lt;br /&gt;&amp;nbsp;export LD_LIBRARY_PATH&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;run installing by sudo &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그다음은 실행하기 위한 환경설정&lt;/p&gt;&lt;p&gt;shell config file(e.g. zshrc) 에 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;PATH=&quot;/bin:/usr/bin:/usr/local/bin:/usr/sbin:${PATH}&quot;&lt;br /&gt;&amp;nbsp;export PATH&lt;br /&gt;&amp;nbsp;LD_LIBRARY_PATH=&quot;/home/min/workspace/vivado/Vivado/2017.4/lnx64/tools/clang-3.9/lib:${LD_LIBRARY_PATH}&quot;&lt;br /&gt;&amp;nbsp;export PATH&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;source /vivado/installed/directory/path/Vivado/version/settings64.sh&lt;/b&gt;&lt;/p&gt;&lt;p&gt;추가&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/vivado/installed/directory/path/Vivado/version/bin/vivado file에 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;LD_LIBRARY_PATH=&quot;/vivado/installed/directory/path/Vivado/2017.4/lnx64/tools/clang-3.9/lib:${LD_LIBRARY_PATH}&quot;&lt;br /&gt;export LD_LIBRARY_PATH&lt;/b&gt;&lt;br /&gt;추가&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;실행하면 라이브러리 관련 에러가 뜬다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;해당 경로에 라이브러리가 없거나 있어도 안맞는듯&lt;/p&gt;&lt;p&gt;해당 시스템의 같은 이름의 라이브러리를 소프트링크해주면 된다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;libtinfo.so.5 -&amp;gt; /lib/libncurses.so.5 ??????&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;끝&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/31</guid>
      <comments>https://hyem2.tistory.com/entry/install-vivado#entry31comment</comments>
      <pubDate>Thu, 15 Mar 2018 14:07:40 +0900</pubDate>
    </item>
    <item>
      <title>생성자 뒤에 콜론(:)</title>
      <link>https://hyem2.tistory.com/entry/%EC%83%9D%EC%84%B1%EC%9E%90-%EB%92%A4%EC%97%90-%EC%BD%9C%EB%A1%A0</link>
      <description>&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;이런 코드를 봤는데&lt;/p&gt;&lt;h3 style=&quot;box-sizing: inherit; margin-top: 0px; margin-bottom: 0.57143rem; font-family: Roboto, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, verdana, Arial, sans-serif; font-weight: 400; line-height: 33px; font-size: 1.57143rem; -webkit-font-smoothing: antialiased; word-spacing: -0.5px;&quot;&gt;소스 코드&lt;/h3&gt;&lt;pre style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; margin-top: 0px; margin-bottom: 1rem; overflow: auto; color: rgb(55, 58, 60); background-color: rgb(255, 255, 255);&quot;&gt;&lt;code class=&quot;c++ hljs cpp&quot; style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; padding: 1.42857rem 1.71429rem; color: rgb(105, 93, 105); background: rgb(238, 238, 238); border-radius: 0px; display: block; overflow-x: auto;&quot;&gt;&lt;span class=&quot;hljs-meta&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;#&lt;span class=&quot;hljs-meta-keyword&quot; style=&quot;box-sizing: inherit;&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;hljs-meta-string&quot; style=&quot;box-sizing: inherit;&quot;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;class&lt;/span&gt; Foo {
&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;public&lt;/span&gt;:
  &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; bar;
  Foo(&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; num): bar(num) {};
};

&lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: inherit; color: rgb(81, 106, 236);&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;(&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;void&lt;/span&gt;)&lt;/span&gt; &lt;/span&gt;{
  &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;std&lt;/span&gt;::&lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;cout&lt;/span&gt; &amp;lt;&amp;lt; Foo(&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;42&lt;/span&gt;).bar &amp;lt;&amp;lt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;std&lt;/span&gt;::&lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;endl&lt;/span&gt;;
  &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;0&lt;/span&gt;;
}
&lt;form action=&quot;http://hashcode.co.kr/code_runners&quot; method=&quot;post&quot; class=&quot;form-run&quot; target=&quot;_blank&quot; style=&quot;box-sizing: inherit; border-top: 1px solid rgb(226, 226, 226); margin-top: 1.42857rem;&quot;&gt;&lt;input type=&quot;submit&quot; class=&quot;btn-run&quot; value=&quot;실행하기 ▶&quot; style=&quot;box-sizing: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; overflow: visible; margin: 0.28571rem 0px 0px; touch-action: manipulation; border-radius: 0px; cursor: pointer; -webkit-appearance: button; border-width: initial; border-style: none; border-color: initial; float: right; color: rgb(154, 153, 153) !important; background-color: rgb(238, 238, 238) !important;&quot;&gt;&lt;/form&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;여기서&amp;nbsp;&lt;code style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; padding: 0.2rem 0.4rem; color: rgb(189, 65, 71); background-color: rgb(247, 247, 249); border-radius: 0px;&quot;&gt;: bar(num)&lt;/code&gt;처럼 쓰는건 뭔가요?&lt;/p&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;저렇게 쓰는 걸 처음 봤는데 다른 함수를 호출하는 건가요? 아니면 생성자에서 쓴걸 보면 생성자랑 관련 있는 건가요?&lt;/p&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;&lt;code style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; padding: 0.2rem 0.4rem; color: rgb(189, 65, 71); background-color: rgb(247, 247, 249); border-radius: 0px;&quot;&gt;Foo(int num): bar(num)&lt;/code&gt;&amp;nbsp;은 초기화 리스트라고 하고, 멤버 변수&amp;nbsp;&lt;code style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; padding: 0.2rem 0.4rem; color: rgb(189, 65, 71); background-color: rgb(247, 247, 249); border-radius: 0px;&quot;&gt;bar&lt;/code&gt;를&amp;nbsp;&lt;code style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; padding: 0.2rem 0.4rem; color: rgb(189, 65, 71); background-color: rgb(247, 247, 249); border-radius: 0px;&quot;&gt;num&lt;/code&gt;으로 초기화하는 역할을 합니다.&lt;/p&gt;&lt;pre style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; margin-top: 0px; margin-bottom: 1rem; overflow: auto; color: rgb(55, 58, 60); background-color: rgb(255, 255, 255);&quot;&gt;&lt;code class=&quot;c++ hljs cpp&quot; style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; padding: 1.42857rem 1.71429rem; color: rgb(105, 93, 105); background: rgb(238, 238, 238); border-radius: 0px; display: block; overflow-x: auto;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: inherit; color: rgb(119, 105, 119);&quot;&gt;//초기화 리스트&lt;/span&gt;
Foo(&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; num): bar(num) {};

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: inherit; color: rgb(119, 105, 119);&quot;&gt;//함수에서 초기화&lt;/span&gt;
Foo(&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; num)
{
   bar = num;
}
&lt;form action=&quot;http://hashcode.co.kr/code_runners&quot; method=&quot;post&quot; class=&quot;form-run&quot; target=&quot;_blank&quot; style=&quot;box-sizing: inherit; border-top: 1px solid rgb(226, 226, 226); margin-top: 1.42857rem;&quot;&gt;&lt;input type=&quot;submit&quot; class=&quot;btn-run&quot; value=&quot;실행하기 ▶&quot; style=&quot;box-sizing: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; overflow: visible; margin: 0.28571rem 0px 0px; touch-action: manipulation; border-radius: 0px; cursor: pointer; -webkit-appearance: button; border-width: initial; border-style: none; border-color: initial; float: right; color: rgb(154, 153, 153) !important; background-color: rgb(238, 238, 238) !important;&quot;&gt;&lt;/form&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;그냥 생성자 함수{} 내에서 초기화하는 것과, 이렇게 초기화 리스트를 쓰 는것의 차이는&lt;/p&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;초기화 리스트에서 초기화를 하는 경우, 생성자가 호출될 때 객체의 생성과 초기화가 한 번에 이루어집니다.&lt;/p&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;생성자 함수 내{}에서 초기화를 하는 경우, 객체가 생성되어, default생성자로 초기화된 상태에서 다시 한 번 할당받게 하게 됩니다. 이 경우엔 default할당-유저할당의 2단계를 거치게 돼서 오버헤드가 생깁니다.&lt;/p&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;초기화 리스트를 써야만 하는 상황은 크게 다음과 같습니다&lt;/p&gt;&lt;ul style=&quot;box-sizing: inherit; margin-top: 0px; margin-bottom: 1rem; font-family: Roboto, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, verdana, Arial, sans-serif; font-size: 15px;&quot;&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;클래스가 레퍼런스를 멤버로 가질 때&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;&lt;code style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; padding: 0.2rem 0.4rem; color: rgb(189, 65, 71); background-color: rgb(247, 247, 249); border-radius: 0px;&quot;&gt;non static const&lt;/code&gt;멤버가 있을 때&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;default 생성자가 없을 때&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;&lt;code style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; padding: 0.2rem 0.4rem; color: rgb(189, 65, 71); background-color: rgb(247, 247, 249); border-radius: 0px;&quot;&gt;base class&lt;/code&gt;를 초기화할 때&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit;&quot;&gt;생성자 파라미터의 이름이 데이터 멤버랑 같을 때(이 경우는 this를 써서 해결할 수도 있습니다)&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;pre&quot; style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; font-family: verdana, Arial, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;malgun gothic&amp;quot;, 돋움, Dotum, sans-serif; font-size: 15px; line-height: 24px;&quot;&gt;예를 들면&lt;/p&gt;&lt;pre style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; margin-top: 0px; margin-bottom: 1rem; overflow: auto; color: rgb(55, 58, 60); background-color: rgb(255, 255, 255);&quot;&gt;&lt;code class=&quot;c++ hljs cpp&quot; style=&quot;box-sizing: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; padding: 1.42857rem 1.71429rem; color: rgb(105, 93, 105); background: rgb(238, 238, 238); border-radius: 0px; display: block; overflow-x: auto;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;class&lt;/span&gt; MyClass
{
    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;public&lt;/span&gt;:
        &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; &amp;amp;i; &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: inherit; color: rgb(119, 105, 119);&quot;&gt;//레퍼런스 멤버. 초기화 리스트를 써야 함&lt;/span&gt;
        &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; b;
        &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: inherit; color: rgb(119, 105, 119);&quot;&gt;//Non static const 멤버. 초기화 리스트를 써야 함&lt;/span&gt;
        &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; k;  

    &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: inherit; color: rgb(119, 105, 119);&quot;&gt;//생성자 파라미터의 이름이 데이터 멤버랑 같음. 초기화 리스트를 쓸수 있음(선택 가능)&lt;/span&gt;
    MyClass(&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; a, &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; b, &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; c):i(a),b(b),k(c)
    {
        &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: inherit; color: rgb(119, 105, 119);&quot;&gt;/*
        초기화 리스트를 쓰고 싶지 않은 경우
        this-&amp;gt;a = a
        같이 써야 함
        */&lt;/span&gt;
    }
};

&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;class&lt;/span&gt; MyClass2:&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;public&lt;/span&gt; MyClass
{
    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;public&lt;/span&gt;:
        &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; p;
        &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; q;
        &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: inherit; color: rgb(119, 105, 119);&quot;&gt;//base class인 MyClass가 default생성자가 없기 때문에 무조건 초기화 리스트에서 초기화해줘야 함&lt;/span&gt;
        MyClass2(&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; x,&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; y,&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; z,&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; l,&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; m):MyClass(x,y,z),p(l),q(m)
        {
        }

};

&lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: inherit; color: rgb(81, 106, 236);&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;()&lt;/span&gt;
&lt;/span&gt;{
    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; x = &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;10&lt;/span&gt;;
    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; y = &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;20&lt;/span&gt;;
    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; z = &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;30&lt;/span&gt;;
    &lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: inherit;&quot;&gt;MyClass &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: inherit; color: rgb(81, 106, 236);&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;(x,y,z)&lt;/span&gt;&lt;/span&gt;;

    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; l = &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;40&lt;/span&gt;;
    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;int&lt;/span&gt; m = &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;50&lt;/span&gt;;
    &lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: inherit;&quot;&gt;MyClass2 &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: inherit; color: rgb(81, 106, 236);&quot;&gt;obj2&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;(x,y,z,l,m)&lt;/span&gt;&lt;/span&gt;;

    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: inherit; color: rgb(123, 89, 192);&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: inherit; color: rgb(166, 89, 38);&quot;&gt;0&lt;/span&gt;;
}
&lt;form action=&quot;http://hashcode.co.kr/code_runners&quot; method=&quot;post&quot; class=&quot;form-run&quot; target=&quot;_blank&quot; style=&quot;box-sizing: inherit; border-top: 1px solid rgb(226, 226, 226); margin-top: 1.42857rem;&quot;&gt;&lt;/form&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C++</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/30</guid>
      <comments>https://hyem2.tistory.com/entry/%EC%83%9D%EC%84%B1%EC%9E%90-%EB%92%A4%EC%97%90-%EC%BD%9C%EB%A1%A0#entry30comment</comments>
      <pubDate>Wed, 8 Mar 2017 11:33:16 +0900</pubDate>
    </item>
    <item>
      <title>멀티쓰레드와 뮤텍스(소켓프로그래밍) multithread and mutex(socket programming)</title>
      <link>https://hyem2.tistory.com/entry/%EB%A9%80%ED%8B%B0%EC%93%B0%EB%A0%88%EB%93%9C%EC%99%80-%EB%AE%A4%ED%85%8D%EC%8A%A4%EC%86%8C%EC%BC%93%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-multithread-and-mutexsocket-programming</link>
      <description>&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;서버&lt;/p&gt;&lt;div&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/2444D74B57C385E510&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;main.cpp&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/213CA64B57C385E617&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;Serv.cpp&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/2241214B57C385E613&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;Serv.h&lt;/a&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;클라이언트&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/2550884C57C385FF04&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;main.cpp&lt;/a&gt;&lt;/span&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;1. 서버&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;-Serv.h&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;textarea class=&quot;brush:c;&quot; name=&quot;code&quot;&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;functional&amp;gt;
#include &amp;lt;WinSock2.h&amp;gt;

#include &amp;lt;queue&amp;gt;


#include &amp;lt;process.h&amp;gt;

#define PORT 5000

typedef struct _cliInfo{
	char* msg;
	struct sockaddr_in clientAddr;
}cliInfo;

using namespace std;



class Serv{


public:

	WORD wVersionRequested;		//WORD is a 16-bit unsigned interger. 0000(low-order word)0000(high-order word)
	WSADATA wsaData;
	SOCKET sd;
	struct sockaddr_in serverAddr;// clientAddr;
	char* serverIP;
	struct hostent *host;
	char host_name[BUFSIZ];
	
	int sockAddrLen;
	queue&amp;lt;cliInfo*&amp;gt; q;

	function&amp;lt;void(Serv*)&amp;gt; userFunc; 
	
	

	HANDLE msgMutex;
	HANDLE processingEvent;

	HANDLE receiveThread;
	DWORD receiveThreadID;
	HANDLE processThread;
	DWORD processThreadID;


	Serv();
	~Serv();
	int bindServerSocket();
	static unsigned int WINAPI receive(void* serv);
	static unsigned int WINAPI process(void* serv);
	int startThread();
};
&lt;/textarea&gt;&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;-Serv.cpp&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;

&lt;textarea class=&quot;brush:c;&quot; name=&quot;code&quot;&gt;#include &quot;Serv.h&quot;	

using namespace std;

int Serv::bindServerSocket(){
	

	//UDP형식의 소켓 생성
	//The Internet Protocol version 4 (IPv4) address family.
	//PF: protocol family
	sd = socket(AF_INET, SOCK_DGRAM, 0);

	//소켓 생성 오류 처리
	if (sd == INVALID_SOCKET)
	{
		fprintf(stderr, &quot;Could not create socket.\n&quot;);
		WSACleanup();
		return 1;
	}



	//server setting
	serverAddr.sin_family=AF_INET;	
	serverAddr.sin_port=htons(PORT);	//convert byte order short data type 
	gethostname(host_name, sizeof(host_name));
	//getting server IP by hostname
	host = gethostbyname(host_name);		
	if (host == NULL)
	{
		fprintf(stderr, &quot;Could not get host name.\n&quot;);
		closesocket(sd);
		WSACleanup();
		return 1;
	}
	memcpy(&amp;amp;serverAddr.sin_addr, host-&amp;gt;h_addr_list[0], host-&amp;gt;h_length);		//서버 ip 설정



	//Bind address to socket
	::bind(sd, (struct sockaddr *)&amp;amp;serverAddr, sizeof(struct sockaddr_in));
	if (sd==NULL )
	{
		fprintf(stderr, &quot;Could not bind name to socket.\n&quot;);
		closesocket(sd);
		WSACleanup();
		return 1;
	}

	// Print out server information
	serverIP=inet_ntoa(serverAddr.sin_addr);
	printf(&quot;Server running on %s\n&quot;,serverIP);

	

	return 0;
};

unsigned int Serv::receive(void* serv)
{
	char* msg;
	struct sockaddr_in clientAddr;
	cliInfo* cli;
	Serv* server=(Serv*)serv;
	int n;
	char* clientIP;

	//get messages from client and put it in the Queue
	do{

		msg=(char*)malloc(sizeof(char)*BUFSIZ);	
		cli=(cliInfo*)malloc(sizeof(cliInfo));
		memset((void *)cli, '\0', sizeof(cliInfo));
		//server-&amp;gt;sockAddrLen=sizeof(server-&amp;gt;clientAddr);
		n=recvfrom(server-&amp;gt;sd,msg,BUFSIZ,0,(struct sockaddr *)&amp;amp;(clientAddr),&amp;amp;(server-&amp;gt;sockAddrLen));	
		msg[n]='\0';
		clientIP=inet_ntoa(clientAddr.sin_addr);
		cli-&amp;gt;clientAddr=clientAddr;
		cli-&amp;gt;msg=msg;

		if(n!=0){
			printf(&quot;gotten messege from %s\n&quot;, clientIP );
			printf(&quot;message: %s\n&quot;, cli-&amp;gt;msg );
		}

		//mutex lock befor using Queue
		WaitForSingleObject(server-&amp;gt;msgMutex,INFINITE);
		__try{
			server-&amp;gt;q.push(cli);
		}
		__finally{
			//mutex unlock
			ReleaseMutex(server-&amp;gt;msgMutex);
		}

		//set the event signaled after putting msg into the queue
		SetEvent(server-&amp;gt;processingEvent);
	}while(strcmp(msg, &quot;quitserver&quot;)!=0);

	return 0;
}

//큐에 있는 메세지를 user defined funtion으로 처리
unsigned int Serv::process(void* serv){
	Serv* server=(Serv*)serv;
	//WaitForSingleObject(server-&amp;gt;receiveThread,INFINITE);
	//while(WaitForSingleObject(server-&amp;gt;receiveThread,INFINITE)==WAIT_OBJECT_0){
	
	while(1){
		//event가 signaled 상태가 될때까지 기다림
		WaitForSingleObject(server-&amp;gt;processingEvent,INFINITE);

		//event가 signaled 상태가 된 후 user defined funtion실행
		server-&amp;gt;userFunc(server);

		//메세지 큐가 비어있으면 event를 nonsignaled 상태로 바꿔줌
		if(server-&amp;gt;q.empty())
			ResetEvent(server-&amp;gt;processingEvent);
		
	}
	return 0;
}

//thread를 실행
int Serv::startThread(){
	receiveThread=(HANDLE)_beginthreadex(NULL,0,Serv::receive,(void*)this,0,(unsigned*)&amp;amp;receiveThreadID);
	processThread=(HANDLE)_beginthreadex(NULL,0,Serv::process,(void*)this,0,(unsigned*)&amp;amp;processThreadID);
	return 0;
}


Serv::Serv()
{

	wVersionRequested=MAKEWORD(2,2);	//window soket 요구 최저버전
	WSAStartup(0x0101, &amp;amp;wsaData);
	msgMutex=CreateMutex(NULL,FALSE,NULL);	
	processingEvent = CreateEvent( 
		NULL,               // default security attributes
		TRUE,               // manual-reset event
		FALSE,              // initial state is nonsignaled
		TEXT(&quot;ProcessingEvent&quot;)  // object name
		); 
	sockAddrLen=sizeof(sockaddr_in);
}

Serv::~Serv()
{
	closesocket(sd);
	WSACleanup();
}

&lt;/textarea&gt;&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;-main.cpp(Server)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;textarea class=&quot;brush:c;&quot; name=&quot;code&quot;&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;functional&amp;gt;
#include &amp;lt;WinSock2.h&amp;gt;

#include &amp;lt;queue&amp;gt;


#include &amp;lt;process.h&amp;gt;

#define PORT 5000

typedef struct _cliInfo{
	char* msg;
	struct sockaddr_in clientAddr;
}cliInfo;

using namespace std;



class Serv{


public:

	WORD wVersionRequested;		//WORD is a 16-bit unsigned interger. 0000(low-order word)0000(high-order word)
	WSADATA wsaData;
	SOCKET sd;
	struct sockaddr_in serverAddr;// clientAddr;
	char* serverIP;
	struct hostent *host;
	char host_name[BUFSIZ];
	
	int sockAddrLen;
	queue&amp;lt;cliInfo*&amp;gt; q;

	function&amp;lt;void(Serv*)&amp;gt; userFunc; 
	
	

	HANDLE msgMutex;
	HANDLE processingEvent;

	HANDLE receiveThread;
	DWORD receiveThreadID;
	HANDLE processThread;
	DWORD processThreadID;


	Serv();
	~Serv();
	int bindServerSocket();
	static unsigned int WINAPI receive(void* serv);
	static unsigned int WINAPI process(void* serv);
	int startThread();
};

&lt;/textarea&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;2. 클라이언트&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;-&lt;span style=&quot;font-size: 12pt;&quot;&gt;main.cpp&lt;/span&gt;&lt;/p&gt;
&lt;textarea class=&quot;brush:c;&quot; name=&quot;code&quot;&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;WinSock2.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string&amp;gt;


#define PORT 5000
#pragma comment(lib, &quot;Ws2_32.lib&quot;)
int main(){
	SOCKET sd;
	struct sockaddr_in serverAddr, clientAddr;
	char sendline[BUFSIZ];
	char recvline[BUFSIZ];
	char tmp[BUFSIZ];
	char serverIP[BUFSIZ];
	int n,serversize;
	WSADATA w;	
	int check;
	
	if (WSAStartup(0x0101, &amp;amp;w) != 0)
	{
		fprintf(stderr, &quot;Could not open Windows connection.\n&quot;);
		exit(0);
	}
	printf(&quot;inputIPaddr: &quot;);
	scanf_s(&quot;%s&quot;,serverIP,sizeof(serverIP));
	


	sd=socket(AF_INET, SOCK_DGRAM, 0);

	memset((void *)&amp;amp;serverAddr, '\0', sizeof(struct sockaddr_in));
	serverAddr.sin_family=AF_INET;
	serverAddr.sin_addr.s_addr=inet_addr(serverIP);
	serverAddr.sin_port=htons(PORT);


	memset((void *)&amp;amp;clientAddr, '\0', sizeof(struct sockaddr_in));

	/* Set family and port */
	clientAddr.sin_family = AF_INET;
	clientAddr.sin_addr.s_addr=INADDR_ANY;
	clientAddr.sin_port = htons(0);

	if (bind(sd, (struct sockaddr *)&amp;amp;clientAddr, sizeof(struct sockaddr_in)) == -1)
	{
		printf(&quot;CreateSocket failed (%d)\n&quot;, GetLastError());
		closesocket(sd);
		WSACleanup();
		exit(0);
	}

	while(1){
		printf(&quot;input anymessage: &quot;);
		scanf(&quot;%s&quot;,tmp, BUFSIZ);
		strcpy(sendline,tmp);
		if(!strcmp(sendline, &quot;q&quot;)) break;
		check=sendto(sd,sendline, strlen(sendline),0,(struct sockaddr*)&amp;amp;serverAddr,sizeof(serverAddr));
		if(check==-1)
			break;
		serversize=sizeof(serverAddr);
		n=recvfrom(sd,recvline,BUFSIZ,0,(struct sockaddr*)&amp;amp;serverAddr,&amp;amp;serversize);
		recvline[n]='\0';
		printf(&quot;receiveFormServer:&quot;);
		fputs(recvline,stdout);
		printf(&quot;\n&quot;);
		
		
	}
	closesocket(sd);
	return 0;
}
&lt;/textarea&gt;&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;mutex를 걸어주는 방법에는 critical section (함수?) 도 있다고 한다.....&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;EVENT 생성시 마지막 인자로 들어가는 TEXT는 안주는 것이 좋다.&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;EVENT TEXT가 같으면 다른 프로그램에서도 같은 EVENT로 인식을 하기 때문에 &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 12pt; white-space: pre-wrap;&quot;&gt;-thread 종료를 시키는 방법&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 12pt; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;thread들은 while문을 돌때 조건으로 flag check를 한다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;delete(소멸자에서) 할때 flag set을 한뒤 waitEvent&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;thread에서 set된 flag를 확인하고 while문을 빠져나온다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;while문을 빠져나와 thread를 빠져 나오기전 setEvent를 해주면 이벤트를 기다리던 delete함수가 메모리 해제를 시작한다. &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C++</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/29</guid>
      <comments>https://hyem2.tistory.com/entry/%EB%A9%80%ED%8B%B0%EC%93%B0%EB%A0%88%EB%93%9C%EC%99%80-%EB%AE%A4%ED%85%8D%EC%8A%A4%EC%86%8C%EC%BC%93%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-multithread-and-mutexsocket-programming#entry29comment</comments>
      <pubDate>Mon, 29 Aug 2016 09:58:06 +0900</pubDate>
    </item>
    <item>
      <title>MultiThread Programming</title>
      <link>https://hyem2.tistory.com/entry/Using-Mutex</link>
      <description>&lt;p&gt;소켓통신: http://www.codeproject.com/Articles/11740/A-simple-UDP-time-server-and-client-for-beginners&lt;/p&gt;&lt;p&gt;mutex: https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms686927(v=vs.85).aspx&lt;/p&gt;&lt;p&gt;callback함수:&amp;nbsp;http://stackoverflow.com/questions/10555566/difference-between-c11-stdbind-and-boostbind&lt;/p&gt;</description>
      <category>Programming Language/C++</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/27</guid>
      <comments>https://hyem2.tistory.com/entry/Using-Mutex#entry27comment</comments>
      <pubDate>Wed, 17 Aug 2016 16:47:29 +0900</pubDate>
    </item>
    <item>
      <title>인터넷 접속 과정과 nat</title>
      <link>https://hyem2.tistory.com/entry/%EC%9D%B8%ED%84%B0%EB%84%B7-%EC%A0%91%EC%86%8D-%EA%B3%BC%EC%A0%95%EA%B3%BC-nat</link>
      <description>&lt;p&gt;http://link2me.tistory.com/40&lt;/p&gt;</description>
      <category>컴퓨터 공부/컴퓨터구조</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/26</guid>
      <comments>https://hyem2.tistory.com/entry/%EC%9D%B8%ED%84%B0%EB%84%B7-%EC%A0%91%EC%86%8D-%EA%B3%BC%EC%A0%95%EA%B3%BC-nat#entry26comment</comments>
      <pubDate>Thu, 11 Aug 2016 11:52:35 +0900</pubDate>
    </item>
    <item>
      <title>scanf와 공백</title>
      <link>https://hyem2.tistory.com/entry/scanf%EC%99%80-%EA%B3%B5%EB%B0%B1</link>
      <description>&lt;div&gt;&quot;What is A?&quot;&lt;/div&gt;&lt;div&gt;라는 문장을 변수 a에 넣고 싶다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;그럼&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;div&gt;char* s=malloc(sizeof(char)*10);&lt;/div&gt;&lt;div&gt;scanf(&quot;%s&quot;,s);&lt;/div&gt;&lt;div&gt;printf(&quot;s:%s\n&quot;,s);&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이런식으로 하면 될까?&lt;/div&gt;&lt;div&gt;위의 결과는&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;div&gt;s: What&lt;/div&gt;&lt;/div&gt;&lt;div&gt;이다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&quot;what is A&quot;라는 문장을 사용자가 입력하면 버퍼에 그대로 저장이된다.&lt;/div&gt;&lt;div&gt;그런 뒤 scanf를 사용하면 버퍼에서 공백이 있는 곳까지 잘라 변수에 저장하게 된다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;프로그램 코드와 실행 결과&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;textarea class=&quot;brush:c;&quot; name=&quot;code&quot;&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;string.h&amp;gt;

int test()
{
  char* s=malloc(sizeof(char)*10);
  char* s1=malloc(sizeof(char)*10);
  char* s2=malloc(sizeof(char)*10);

  scanf(&quot;%s&quot;,s);
  printf(&quot;s:%s \n&quot;,s);

  return 0;

}

int main()
{
  test();
  printf(&quot;program end\n&quot;);
  return 0;
}

&lt;/textarea&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 290px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2628483857A559DC1C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2628483857A559DC1C&quot; width=&quot;290&quot; height=&quot;84&quot; filename=&quot;캡처.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;




&lt;textarea class=&quot;brush:c;&quot; name=&quot;code&quot; style=&quot;margin: 0px; height: 565px; width: 661px;&quot;&gt;   #include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;string.h&amp;gt;

int test()
{
  char* s=malloc(sizeof(char)*10);
  char* s1=malloc(sizeof(char)*10);
  char* s2=malloc(sizeof(char)*10);

  printf(&quot;input: &quot;);
  scanf(&quot;%s&quot;,s);
  scanf(&quot;%s1&quot;,s1);
  scanf(&quot;%s2&quot;,s2);
  printf(&quot;s:%s &quot;,s);
  printf(&quot;sizeof(s)=%d &quot;,(int)strlen(s));
  printf(&quot;s1:%s &quot;,s1);
  printf(&quot;s2:%s \n&quot;,s2);

  printf(&quot;s[0]=%c &quot;,s[0]);
  printf(&quot;s[9]=%c &quot;,s[9]);
  printf(&quot;s[11]=%c \n&quot;,s[11]);
  return 0;

}

int main()
{
  test();
  printf(&quot;program end\n&quot;);
  return 0;
}

 &lt;/textarea&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이런식으로 코딩하게 되면 &quot;What&lt;span style=&quot;color: rgb(9, 0, 255);&quot;&gt;&lt;b&gt;(space)&lt;/b&gt;&lt;/span&gt;is&lt;b&gt;&lt;span style=&quot;color: rgb(9, 0, 255);&quot;&gt;(space)&lt;/span&gt;&lt;/b&gt;A&lt;b&gt;&lt;span style=&quot;color: rgb(9, 0, 255);&quot;&gt;(Enter)&lt;/span&gt;&lt;/b&gt;&quot;를 입력했을 때&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;div&gt;s=What&lt;/div&gt;&lt;div&gt;s1=is&lt;/div&gt;&lt;div&gt;s2=A&lt;/div&gt;&lt;/div&gt;&lt;div&gt;가 된다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What is A 를 입력한 뒤 다른 입력 없이도 scanf함수를 사용할 때마다 buffer에서 읽어와서 변수에 저장하는 것이당&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;실행결과&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 280px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232ED63357A55A8909&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232ED63357A55A8909&quot; width=&quot;280&quot; height=&quot;63&quot; filename=&quot;캡처1.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;그럼 공백도 포함해서 s에 넣고 싶으면 어쩌나..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;fgets를 사용하면 된다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;fgets(char* s, int size, File* stream);&lt;/div&gt;&lt;div&gt;이런 형태인데 stream으로부터 한줄씩(개행문자가 오기 전까지) 읽어서 s에 넣는 함수이다.&lt;/div&gt;&lt;div&gt;fgets함수 정리는 다음에...&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/25</guid>
      <comments>https://hyem2.tistory.com/entry/scanf%EC%99%80-%EA%B3%B5%EB%B0%B1#entry25comment</comments>
      <pubDate>Sat, 6 Aug 2016 12:33:52 +0900</pubDate>
    </item>
    <item>
      <title>scanf를 사용할 때 주의해야할 것</title>
      <link>https://hyem2.tistory.com/entry/scanf%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%A0-%EB%95%8C-%EC%A3%BC%EC%9D%98%ED%95%B4%EC%95%BC%ED%95%A0-%EA%B2%83</link>
      <description>&lt;p&gt;http://kaspyx.kr/2&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/24</guid>
      <comments>https://hyem2.tistory.com/entry/scanf%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%A0-%EB%95%8C-%EC%A3%BC%EC%9D%98%ED%95%B4%EC%95%BC%ED%95%A0-%EA%B2%83#entry24comment</comments>
      <pubDate>Sat, 6 Aug 2016 12:11:59 +0900</pubDate>
    </item>
    <item>
      <title>data를 16진수로 출력하기</title>
      <link>https://hyem2.tistory.com/entry/data%EB%A5%BC-16%EC%A7%84%EC%88%98%EB%A1%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;int index=0;&lt;/p&gt;&lt;p&gt;printf(&quot;%02x&quot;,index);&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;//%(02)x=%(출력하고자하는 자리수)x&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;printf('%02x&quot;,index)의 결과=00&lt;/p&gt;&lt;p&gt;printf('%05x&quot;,index)의 결과=00000&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/23</guid>
      <comments>https://hyem2.tistory.com/entry/data%EB%A5%BC-16%EC%A7%84%EC%88%98%EB%A1%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0#entry23comment</comments>
      <pubDate>Fri, 29 Jul 2016 15:35:30 +0900</pubDate>
    </item>
    <item>
      <title>window cmd(커맨드)창에서 이더넷(유선연결)을 dhcp(자동할당)으로 바꿔주는 방법</title>
      <link>https://hyem2.tistory.com/entry/window-cmd%EC%BB%A4%EB%A7%A8%EB%93%9C%EC%B0%BD%EC%97%90%EC%84%9C-%EC%9D%B4%EB%8D%94%EB%84%B7%EC%9C%A0%EC%84%A0%EC%97%B0%EA%B2%B0%EC%9D%84-dhcp%EC%9E%90%EB%8F%99%ED%95%A0%EB%8B%B9%EC%9C%BC%EB%A1%9C-%EB%B0%94%EA%BF%94%EC%A3%BC%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;P&gt;set interface ip set address &quot;이더넷&quot; dhcp&lt;/P&gt;</description>
      <category>Windows Programming</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/22</guid>
      <comments>https://hyem2.tistory.com/entry/window-cmd%EC%BB%A4%EB%A7%A8%EB%93%9C%EC%B0%BD%EC%97%90%EC%84%9C-%EC%9D%B4%EB%8D%94%EB%84%B7%EC%9C%A0%EC%84%A0%EC%97%B0%EA%B2%B0%EC%9D%84-dhcp%EC%9E%90%EB%8F%99%ED%95%A0%EB%8B%B9%EC%9C%BC%EB%A1%9C-%EB%B0%94%EA%BF%94%EC%A3%BC%EB%8A%94-%EB%B0%A9%EB%B2%95#entry22comment</comments>
      <pubDate>Fri, 29 Jul 2016 00:02:34 +0900</pubDate>
    </item>
    <item>
      <title>Slider가 움직이는대로 ProgressBar움직이게 하기</title>
      <link>https://hyem2.tistory.com/entry/Slider%EA%B0%80-%EC%9B%80%EC%A7%81%EC%9D%B4%EB%8A%94%EB%8C%80%EB%A1%9C-ProgressBar%EC%9B%80%EC%A7%81%EC%9D%B4%EA%B2%8C-%ED%95%98%EA%B8%B0</link>
      <description>&lt;div&gt;Slider가 움직이는대로 ProgressBar움직이게 하기&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;textarea name=&quot;code&quot; class=&quot;brush:cpp;&quot;&gt;#include &quot;widget.h&quot;
#include &amp;lt;QApplication&amp;gt;
#include &amp;lt;QSlider&amp;gt;
#include &amp;lt;QProgressBar&amp;gt;


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget* w=new QWidget(0);
    
    //make slider
    QSlider *sl=new QSlider(Qt::Horizontal,w);
    sl-&amp;gt;setTickPosition(QSlider::TicksAbove);
    sl-&amp;gt;setRange(0,100);
    sl-&amp;gt;setValue(20);
    sl-&amp;gt;resize(200,30);
    //set location
    sl-&amp;gt;move(5,5);
    
    //make progressbar
    QProgressBar* pb=new QProgressBar(w);
    pb-&amp;gt;setRange(0,100);
    pb-&amp;gt;setValue(20);
    pb-&amp;gt;resize(200,30);
    //set location
    pb-&amp;gt;move(5,50);
    
    //make connection between signal and slot 
    //when sl(slider) sends a SIGNAL(valueChanged) pb receives and do SLOT(setValue)
    QObject::connect(sl,SIGNAL(valueChanged(int)),pb,SLOT(setValue(int)));

    w-&amp;gt;show();
    return a.exec();
}




&lt;/textarea&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/QT</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/21</guid>
      <comments>https://hyem2.tistory.com/entry/Slider%EA%B0%80-%EC%9B%80%EC%A7%81%EC%9D%B4%EB%8A%94%EB%8C%80%EB%A1%9C-ProgressBar%EC%9B%80%EC%A7%81%EC%9D%B4%EA%B2%8C-%ED%95%98%EA%B8%B0#entry21comment</comments>
      <pubDate>Wed, 20 Apr 2016 10:58:20 +0900</pubDate>
    </item>
    <item>
      <title>how to fix [not in the sudoers file.] error</title>
      <link>https://hyem2.tistory.com/entry/how-to-solve-not-in-the-sudoers-file-error</link>
      <description>&lt;p&gt;&lt;b&gt;not in the sudoers file&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;현재 sudo 권한이 없어서 발생하는 에러이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;sudo 그룹에 현재 사용자를 추가해주면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(193, 193, 193); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;su -&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;명령어를 치면 root 계정으로 바뀌고&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(193, 193, 193); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;su [username]&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;명령어를 치면 다른 입력한 username 계정으로 바뀐다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;sudo 권한이 있는 username 이나 이걸 모르면 그냥 root 계정으로 바꾼 후에&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(193, 193, 193); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;sudo adduser [username] sudo&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;를 입력하면 sudoer 그룹에 username 이 추가되어 sudo 명령어를 수행할 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/20</guid>
      <comments>https://hyem2.tistory.com/entry/how-to-solve-not-in-the-sudoers-file-error#entry20comment</comments>
      <pubDate>Tue, 19 Apr 2016 13:19:57 +0900</pubDate>
    </item>
    <item>
      <title>문자열 함수</title>
      <link>https://hyem2.tistory.com/entry/%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%A8%EC%88%98</link>
      <description>char buff[100]=&quot;note&quot;;&lt;div&gt;char* pstr=&quot;book&quot;;&lt;/div&gt;&lt;div&gt;char* p;&lt;/div&gt;&lt;div&gt;strcat(buff, pstr);&lt;/div&gt;&lt;div&gt;puts(buff);&lt;/div&gt;&lt;div&gt;strncat(buff, &quot;12345&quot;,3);&lt;/div&gt;&lt;div&gt;puts(buff);&lt;/div&gt;&lt;div&gt;strcat(p,buff);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; //오류: 쓰레기 주소에 값을 넣으려고 시도&lt;/div&gt;&lt;div&gt;&lt;p&gt;strcat(pstr, buff);&amp;nbsp; &amp;nbsp; //오류: 상수값에 값을 집어넣으려고 시도&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;alloca =&amp;gt; stack 세그먼트 영역에 동적메모리 할당&lt;/p&gt;&lt;p&gt;장점: 함수 호출, 반환시 스택 영역을 사용하는데 스택영역에 동적메모리를 할당하면 함수 반환시 메모리가 자동 해제되기때문에&amp;nbsp;&lt;/p&gt;&lt;p&gt;free할 필요없음&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/19</guid>
      <comments>https://hyem2.tistory.com/entry/%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%A8%EC%88%98#entry19comment</comments>
      <pubDate>Fri, 15 Apr 2016 17:43:12 +0900</pubDate>
    </item>
    <item>
      <title>vim 명령어</title>
      <link>https://hyem2.tistory.com/entry/vim-%EB%AA%85%EB%A0%B9%EC%96%B4</link>
      <description>&lt;p&gt;gg: 제일 첫문장 첫커서로 이동&lt;/p&gt;&lt;p&gt;v: 비주얼모드로 전환&lt;/p&gt;&lt;p&gt;G: 끝문장 끝커서로 이동&lt;/p&gt;&lt;p&gt;=: 비주얼모드에서 자동정렬됨&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;o: 다음행에 입력&lt;/p&gt;&lt;p&gt;^p(ctrl+p): 변수 자동완성&lt;/p&gt;&lt;p&gt;^b/^f: 이전화면/다음화면 이동&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/18</guid>
      <comments>https://hyem2.tistory.com/entry/vim-%EB%AA%85%EB%A0%B9%EC%96%B4#entry18comment</comments>
      <pubDate>Mon, 11 Apr 2016 17:45:40 +0900</pubDate>
    </item>
    <item>
      <title>이차원배열을 매개변수로 넣어주기 (passing a 2d array as a function argument)</title>
      <link>https://hyem2.tistory.com/entry/%EC%9D%B4%EC%B0%A8%EC%9B%90%EB%B0%B0%EC%97%B4-%ED%95%A8%EC%88%98-%EC%9D%B8%EC%9E%90%EB%A1%9C-%EB%84%A3%EC%96%B4%EC%A3%BC%EA%B8%B0-How-to-use-the-2-dimensional-array-as-a-parameter-of-functions</link>
      <description>&lt;p&gt;2차원 배열을 선언 후 함 수 이자로 넘겨줄 필요가 있는 경우&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;textarea class=&quot;brush:c;&quot; name=&quot;code&quot;&gt;int printArr(int** arr){
	int i, j;
	for (i = 0; i &amp;lt; 5; i++){
		for (j = 0; j &amp;lt; 5; j++)
			printf(&quot;%d\t&quot;, arr[i][j]);
		printf(&quot;\n&quot;);
	}
	return 0;
}

int main(){
	int a[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
	printArr(a);
}
   
 &lt;/textarea&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;이케 받으면 오류가 난다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;그 이유는?&lt;/div&gt;
&lt;div&gt;이중배열은 실제로 메모리에 저장될 때는 일차원으로 저장된다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;이렇게 선언한 배열은&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;라기 보다는&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;int a[3]={int[4], int[4], int[4]}&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;이것과 같다고 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;무슨말이냐&lt;/p&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 225px; MARGIN-RIGHT: 10px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2772523E5707A8D603&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2772523E5707A8D603&quot; width=&quot;225&quot; height=&quot;176&quot; filename=&quot;1.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;MARGIN-RIGHT: 10px&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 272px; FONT-SIZE: 12px; MARGIN-RIGHT: 10px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/224BF6385708ADF325&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F224BF6385708ADF325&quot; width=&quot;272&quot; height=&quot;247&quot; filename=&quot;4.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;FONT-SIZE: 12px; MARGIN-RIGHT: 10px&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 281px; FONT-SIZE: 12px; MARGIN-RIGHT: 10px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2519BD3B5708AE0919&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2519BD3B5708AE0919&quot; width=&quot;281&quot; height=&quot;236&quot; filename=&quot;5.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;FONT-SIZE: 12px; MARGIN-RIGHT: 10px&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;이중 배열의 주소체계는 이러하다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;a자체는 총 3개의 int[4]원소를 가진 배열의 시작주소를 나타내고&lt;/p&gt;
&lt;p&gt;a의 첫번째 원소 a[0]( *(a+0)과 같음 )=int[4]={1,2,3,4}&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 두번째 원소 a[1]=int[4]={5,6,7,8}&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 세번째 원소 a[2]=int[4]={9,10,11,12}가 된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;따라서 a[0]의 주소와 a[1]의 주소는( 4byte(int 크기)*4=)16byte 차이가 난다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;a[0]은 총 4개의 int원소를 가진 배열의 시작주소를 나타내므로&amp;nbsp;&lt;/p&gt;
&lt;p&gt;a[0]의 첫번째 원소 a[0][0]( *(*(a+0)+0)과 같음 )=int={0}&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;두번째 원소 a[0][1]=int={1}&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/p&gt;
&lt;p&gt;과 같다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;따라서 a[0][0]의 주소와 a[0][1]의 주소는 4byte차이가 난다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;이를 코드로 확인해보면&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;textarea class=&quot;brush:c;&quot; name=&quot;code&quot;&gt;int a[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
	printf(&quot;&amp;amp;a=%x\t\t &amp;amp;(a)+1=%x \n&quot;, &amp;amp;a, &amp;amp;(a)+1 );
	printf(&quot;&amp;amp;(*a)=%x\t\t &amp;amp;(*(a+1))=%x\n&quot;, &amp;amp;(*a), &amp;amp;(*(a + 1)));
	printf(&quot;&amp;amp;(*(*a))=%x\t &amp;amp;(*(*(a+0)+1)=%x \n&quot;, &amp;amp;(*(*a + 0)), &amp;amp;(*(*(a + 0) + 1)));
&lt;/textarea&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt;결과&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 394px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2161B33B570877280E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2161B33B570877280E&quot; width=&quot;394&quot; height=&quot;84&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;이케 된다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;a의 주소와 그 다음 주소 값을 확인해보면 16진수로 48byte(3*(int(4byte)*4))=(0x30)&amp;nbsp;차이가 나는 것을 알 수 있다&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;a의 첫번째 원소(*a=a[0])의 주소값과 두번째 원소(*(a+1)=a[1])의 주소값은 16byte(int*4)=(0x10) 차이가 나고&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;a[0]의 첫번째 원소(*(*(a+0)+0)=a[0][0])의 주소값과 두번째 원소(*(*(a+0)+1)=a[0][1])의 주소값은 4byte(int)=(0x04) 차이가 난당&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;여기서 나는 헷갈렸던게 a는 int 포인터 타입의 변수인줄 알았다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;즉 a는 배열을 메모리에 할당하고 그 주소값만 가지고 있는 변수라고 생각했는데&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;그게 아니라 그냥 그 배열 자체를 나타내는 변수였던 것이다&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;이게 무슨 말이냐면 변수를 사용할 때&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;int a=4;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;이케 선언하면 4라는 값을 메모리에 할당한 후 그 메모리의 주소값을 나타내는 애가 a이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;a라는 변수를 사용해서 4를 할당해준 메모리에 접근할 수 있는 것이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;(이게 변수를 만들어 주는 이유. 우리가 항상 메모리 주소를 기억하고 사용하기 불편하므로 변수를 사용해서 쉽게 사용하는 것)&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;a는 4를 갖고 있는 메모리자체라고 볼 수 있음&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;나는 이걸 a는 4라는 값을 갖는 int 자체를 나타내는 변수 라고 표현했다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;근데 포인터형 변수는 그 메모리&amp;nbsp;자체를 나타내는 변수가 아니라 메모리 주소값만을 갖는 변수이다&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;int* b=&amp;amp;a&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;라고 선언하면 a는 메모리의 주소값을 포인터형 변수인 b에게 알려주는 것이다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 253px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/267B2F445708ACE715&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F267B2F445708ACE715&quot; width=&quot;253&quot; height=&quot;229&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 216px; FONT-SIZE: 12px; TEXT-ALIGN: center; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/220828445708ACE80B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F220828445708ACE80B&quot; width=&quot;216&quot; height=&quot;213&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;FONT-SIZE: 12px; TEXT-ALIGN: center&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;그림을 보면 a는 4값을 담고 있는 메모리이고 b는 4를 담고 있는 메모리 주소를 담는 메모리이다.(아...쓰면서도 헷갈려)&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;b는 0xb4라는 주소를 따로 갖는 4를 담는 메모리와는 별개의 변수이지만 a는 4를 담는 메모리 자체인것이다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;부디 나중에 보면서도 이해되길....&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;다시 처음으로 돌아가서 왜&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;함수에서&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;int a[3][4]로 선언한 배열을&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;int** arr 로 받으면 에러가 나는가?&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;a는 배열을 가지고 있는 메모리 자체를 나타내는 변수고&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;arr은 정수값을 갖는 메모리를 찾아가기 위한 주소 값을 갖는 포인터형 변수이기 때문이다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 645px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/247F5C3B5708BB7D20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F247F5C3B5708BB7D20&quot; width=&quot;645&quot; height=&quot;288&quot; filename=&quot;9.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 12px&quot;&gt;arr로 넘어오는 것은 a의 주소값인 0x00 이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;arr은 0x64번지에 메모리를 할당해주고 0x00이라는 주소값을 담고 있는 변수!&lt;/p&gt;
&lt;p&gt;또 arr은 이중 포인터이기 때문에 처음에 0x00을 따라간 후에 0x00번지에 담겨 있는 값도&amp;nbsp;&lt;/p&gt;
&lt;p&gt;8byte의 주소값(64bit에선 8byte, 32bit에선 4byte)으로 인식을 한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;0x00번지부터 0x08번지까지에 있는 binary값을 읽은 다음 그값을 16진수의 주소(0x21)로 인식을 하는 것이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그래서 이를 따라간 다음 int 값으로 읽기 위해 4byte의 binary 값을 읽으면 값이 이상해진다.&lt;/p&gt;
&lt;p&gt;(간단하게 그림을 나타내기 위해 정수값을 주소값으로 변환하는걸 그림에서는 야매로 0x21로 나타냈는데&amp;nbsp;&lt;/p&gt;
&lt;p&gt;실제 컴퓨터에서는 정수값 1과 2를 연달아 binary값으로 읽은 다음 16진수 주소값으로 바꾸면&lt;/p&gt;
&lt;p&gt;0x0000000200000001이 된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;정수값 1은&amp;nbsp;0x00000001로 저장 되고 정수값 2는 64bit에서는 0x00000002로 저장되는데&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;little endian으로 8byte를 읽으면서 0x0000000200000001 이 되는 것이다)&lt;/p&gt;
&lt;p&gt;그래서 제대로 넘겨주기 위해선&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;textarea class=&quot;brush:c&quot; name=&quot;code&quot;&gt;int printArr(int(*arr)[4]){
	int i, j;
	for (i = 0; i &amp;lt; 5; i++){
		for (j = 0; j &amp;lt; 5; j++)
			printf(&quot;%d\t&quot;, arr[i][j]);
		printf(&quot;\n&quot;);
	}
	return 0;
}
&lt;/textarea&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;이케 써야된다&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 422px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27135E345708CC370F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27135E345708CC370F&quot; width=&quot;422&quot; height=&quot;284&quot; filename=&quot;17.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;뭐가 다르냐면....&lt;/div&gt;
&lt;div&gt;int(*arr)[4]로 넘겨주는 것은&amp;nbsp;&lt;/div&gt;
&lt;div&gt;arr이 가리키고 있는 건(*arr)&lt;/div&gt;
&lt;div&gt;&quot;int형 데이터 4개를 갖고 있는&amp;nbsp;배열(int[4]&quot;을 담고 있는 메모리 자체라는 것을&amp;nbsp;알려주는 것이다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;(*arr)이 int형 데이터 4개를 갖는 배열이라는 것을 알기 때문에 (*arr)은 16byte의 크기라는 것도 알고 있고&lt;/div&gt;
&lt;div&gt;(*arr)에서 1을 더하면 arr주소에서 16byte를 더한 메모리로 이동할 수 있는 것이다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;또 (*arr)이 int형 데이터를 4개 가지고 있는 배열이라는 것도 알기 때문에 (*arr)의 첫번째 원소를 읽기 위해서&amp;nbsp;&lt;/div&gt;
&lt;div&gt;(*arr)[0]을 하면 시작 주소에서부터 int의 크기인 4byte를 읽을 수도 있다.&lt;/div&gt;
&lt;div&gt;메모리 자체에 접근 가능&lt;/div&gt;
&lt;div&gt;여기서 또 헷갈렸던게....@.@&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;내가 디버깅하며 테스트한 코드&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;textarea class=&quot;brush:c&quot; name=&quot;code&quot;&gt;int printArr2(int(*arr2)[4]){
	printf(&quot;[int(*arr2)[4]로 받은 함수에서의] \nsizeof(arr2)=%d\t sizeof(*(arr2))=%d\t sizeof(**(arr2))=%d\n&quot;, sizeof(arr2), sizeof(*(arr2 + 1)), sizeof(**(arr2 + 1)));
	int i, j;
	printf(&quot;&amp;gt;&amp;gt;결과\n&quot;);
	for (i = 0; i &amp;lt;3; i++){
		for (j = 0; j &amp;lt; 4; j++)
			printf(&quot;%d\t&quot;, arr2[i][j]);
		printf(&quot;\n&quot;);
	}

	return 0;
}

int printArr(int** arr){
	printf(&quot;[int** arr로 받은 함수에서의] \nsizeof(arr)=%d\t sizeof(*(arr))=%d\t sizeof(**(arr))=%d\n&quot;, sizeof(arr), sizeof(*(arr)), sizeof(**(arr)));
	int i, j;
	for (i = 0; i &amp;lt;3; i++){
		for (j = 0; j &amp;lt; 4; j++)
			printf(&quot;%d\t&quot;, arr[i][j]);
		printf(&quot;\n&quot;);
	}

	return 0;
}

int main(){
	int a[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
	printf(&quot;&amp;amp;a=%x\t\t &amp;amp;(a)+1=%x \n&quot;, &amp;amp;a, &amp;amp;(a)+1 );
	printf(&quot;&amp;amp;(*a)=%x\t\t &amp;amp;(*(a+1))=%x\n&quot;, &amp;amp;(*a), &amp;amp;(*(a + 1)));
	printf(&quot;&amp;amp;(*(*a))=%x\t &amp;amp;(*(*(a+0)+1)=%x \n&quot;, &amp;amp;(*(*a + 0)), &amp;amp;(*(*(a + 0) + 1)));
	printf(&quot;-----------------------------------------------------------------------\n&quot;);
	printf(&quot;[a를 선언한 곳에서의] \nsizeof(a)=%d\t sizeof(*(a))=%d\t sizeof(**(a))=%d\n&quot;, sizeof(a), sizeof(*(a)), sizeof(**(a)));
	printf(&quot;-----------------------------------------------------------------------\n&quot;);
	printArr2(a);
	printf(&quot;-----------------------------------------------------------------------\n&quot;);
	printArr(a);

}
&lt;/textarea&gt;
&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;WHITE-SPACE: pre-wrap&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;WHITE-SPACE: pre-wrap&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;디버깅하며 확인한 변수의 주소와 그 안에 들어있는 값&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 862px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/24469C435708C67C17&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F24469C435708C67C17&quot; width=&quot;862&quot; height=&quot;203&quot; filename=&quot;15.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt;결과&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 596px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/276391445708C74530&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F276391445708C74530&quot; width=&quot;596&quot; height=&quot;426&quot; filename=&quot;14.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;int(*arr2)[4]로 넘겨준 arr2를 보면 0x000000020bff8fbd0번지에 할당되어&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 12px&quot;&gt;a의 주소값 0x000000020bff8fbf8을 갖고 있는 포인터형 변수라는 것을 알 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;따라서 arr2의 사이즈는 8byte (64bit운영체제에서의 주소크기)이고 arr2가 가리키는 것은(&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;0x000000020bff8fbf&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;8번지에 있는 데이터=(*arr))&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;int[4]라는 것을 알려줬기 때문에 *(arr2)의 사이즈는 16byte라는 것을 알고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;그리고 *(arr)이 가리키는 데이터(&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;0x000000020bff8fbf&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;8번지에 있는 데이터=*(*arr))는 int형이니까 4byte로 출력된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;(arr2=*arr2=*(*arr2)인 이유는 arr2가 이중 배열을 가지고 있는 메모리 자체를 나타내는 변수 이기 때문. 위에 설명해놨다)&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;WHITE-SPACE: pre-wrap&quot;&gt;이렇게 잘 넘어와서 넘겨받은 배열의 내용이 잘 출력된다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;WHITE-SPACE: pre-wrap&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;WHITE-SPACE: pre-wrap&quot;&gt;반면 int** arr로 받은 arr을 보면 &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;0x000000020bff8fbd0번지에 할당되어&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;a의 주소값 0x000000020bff8fbf8을 갖고 있는 포인터형 변수라는 것을 알 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;arr의 사이즈는 8byte이고 arr이 가리키는 것은 다시 포인터형이기 때문에 *arr의 사이즈는 주소크기인 8byte가 되고&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;*arr&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;을 int형 데이터가 4개 담겨있는 배열로 읽는 것이아니라&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;*arr에 있는 값을 주소 형태인&amp;nbsp;8byte단위로&amp;nbsp;읽는다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;그래서 *arr에 있는 데이터&amp;nbsp;&amp;nbsp;(4byte 숫자 1(0x00000001)과 arr[0][1]에 있던 4byte 숫자 2(0x00000002))를 읽어&lt;/div&gt;
&lt;div&gt;0x0000000200000001 형태의 주소로 읽는다. (*arr=0x0000000200000001)&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;COLOR: rgb(189,189,189)&quot;&gt;(*arr+1(arr[1])은 그 다음 8byte 데이터인 &lt;/span&gt;&lt;span style=&quot;COLOR: rgb(189,189,189)&quot;&gt;0x0000000400000003(정수 3과 정수 4를 8&lt;/span&gt;&lt;span style=&quot;COLOR: rgb(189,189,189)&quot;&gt;byte 주소로 읽은 것)&lt;/span&gt;&lt;span style=&quot;COLOR: rgb(189,189,189)&quot;&gt;으로 읽는 것 봐라...절레절레...)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;*(*arr)(=0x0000000200000001이 가리키는 데이터)는 당연히 없다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;FONT-SIZE: 13px&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;WHITE-SPACE: pre-wrap&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;
&lt;div&gt;이중배열을&amp;nbsp;&lt;/div&gt;
&lt;div&gt;int** b;&lt;/div&gt;
&lt;div&gt;이렇게 선언해주고 동적할당 해주면&amp;nbsp;&lt;/div&gt;
&lt;div&gt;함수인자로&amp;nbsp;&lt;/div&gt;
&lt;div&gt;int printArr(int** arr)&lt;/div&gt;
&lt;div&gt;이렇게 넘겨줘도 에러가 안난다.&lt;/div&gt;
&lt;div&gt;무슨 차이인지는 2탄에 정리....&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <category>이차원배열</category>
      <category>이차원배열 사용법</category>
      <category>이차원배열 주소</category>
      <category>이차원배열 함수인자</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/17</guid>
      <comments>https://hyem2.tistory.com/entry/%EC%9D%B4%EC%B0%A8%EC%9B%90%EB%B0%B0%EC%97%B4-%ED%95%A8%EC%88%98-%EC%9D%B8%EC%9E%90%EB%A1%9C-%EB%84%A3%EC%96%B4%EC%A3%BC%EA%B8%B0-How-to-use-the-2-dimensional-array-as-a-parameter-of-functions#entry17comment</comments>
      <pubDate>Fri, 8 Apr 2016 17:51:13 +0900</pubDate>
    </item>
    <item>
      <title>network</title>
      <link>https://hyem2.tistory.com/entry/network</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192); font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;※host name lookup&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;ip주소 말고 host name으로 서버 접속시 과정은&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;www.hyem2.com -&amp;gt;(DNS Resolver cache check -&amp;gt;)&amp;nbsp;DNS Server가 ip주소를 알려줌&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;이렇다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;DNS Server 에 등록 없이 ip주소를 쓰지 않고 host name으로 접속하기 위해서는 DNS Resolver에 직접 알려줘야 한다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;window 에서는&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Windows/Systems32/drivers/etc/hosts 파일에서 hostname과 ip 설정 (IP lookup)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;linux 에서는&amp;nbsp;&lt;/p&gt;&lt;p&gt;~/etc/hosts 파일에서 hostname과 ip 설정&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ex)&amp;nbsp;&lt;/p&gt;&lt;p&gt;192.168.0.199&amp;nbsp;&amp;nbsp; &amp;nbsp; a.hyem2.com&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;※&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;virtual host 설정&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333px; line-height: 20px;&quot;&gt;가상머신에 깔려있는 리눅스 서버 하나로 여러개의 사이트를 만들기 위해서 가상 호스트 설정이 필요.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;~/etc/apache2/sites-available에 .conf 파일들을 설정해주면 된다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 310px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2255414F56F907D642&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2255414F56F907D642&quot; width=&quot;310&quot; height=&quot;231&quot; filename=&quot;캡처.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;여러케&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그러면 VirtualHost가 가리키는 디렉토리에 작성되어있는 html파일을 찾아 사이트를 띄운다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;//DNS lookup&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;//공인ip??????????&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(250, 244, 192);&quot;&gt;//포트포워딩..................&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터 공부/운영체제</category>
      <category>dns</category>
      <category>host name lookup</category>
      <category>가상호스트</category>
      <category>네트워크</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/15</guid>
      <comments>https://hyem2.tistory.com/entry/network#entry15comment</comments>
      <pubDate>Mon, 28 Mar 2016 17:58:02 +0900</pubDate>
    </item>
    <item>
      <title>char 배열에 담겨져 있는 string 비교 (char array comparison)</title>
      <link>https://hyem2.tistory.com/entry/char-%EB%B0%B0%EC%97%B4%EC%97%90-%EB%8B%B4%EA%B2%A8%EC%A0%B8-%EC%9E%88%EB%8A%94-string-%EB%B9%84%EA%B5%90-char-array-comparison</link>
      <description>&lt;p&gt;strcmp(비교할 대상,비교할 문자열)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;함수를 추상화 하여 나타내면&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;strcmp(s1,s2){&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 16.3636px; margin-left: 2em;&quot;&gt;if(s1==s2) return 0;&lt;/p&gt;&lt;p style=&quot;line-height: 16.3636px; margin-left: 2em;&quot;&gt;if(s1&amp;gt;s2) return 1;&lt;/p&gt;&lt;p style=&quot;line-height: 16.3636px; margin-left: 2em;&quot;&gt;if(s1&amp;lt;s2) return -1;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/11</guid>
      <comments>https://hyem2.tistory.com/entry/char-%EB%B0%B0%EC%97%B4%EC%97%90-%EB%8B%B4%EA%B2%A8%EC%A0%B8-%EC%9E%88%EB%8A%94-string-%EB%B9%84%EA%B5%90-char-array-comparison#entry11comment</comments>
      <pubDate>Mon, 22 Feb 2016 19:33:16 +0900</pubDate>
    </item>
    <item>
      <title>visual studio 단축키</title>
      <link>https://hyem2.tistory.com/entry/visual-studio-%EB%8B%A8%EC%B6%95%ED%82%A4</link>
      <description>&lt;p&gt;-한번에 주석달기&lt;/p&gt;&lt;p&gt;CTRL+c+k -&amp;gt; CTRL+c&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-한줄만 주석 넣기&lt;/p&gt;&lt;p&gt;CTRL+k+c&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-한줄만 주석 해제&lt;/p&gt;&lt;p&gt;CTRL+k+u&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-한번에 주석 해제&lt;/p&gt;&lt;p&gt;CTRL+c+k -&amp;gt; CTRL+u&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-자동정렬&lt;/p&gt;&lt;p&gt;CTRL+k+f&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-브레이크 포인트 설정&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;모든 브레이크 포인트 삭제 : CTRL+SHIFT+F9&lt;/li&gt;&lt;li&gt;현재 커서의 브레이크 포인트 설정/해제 : F9&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333px; line-height: 20px; text-align: justify;&quot;&gt;Ctrl-F7 : 현 파일만 컴파일&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 현 프로젝트만 빌드&lt;/span&gt;&lt;br style=&quot;font-size: 13.3333px; line-height: 20px; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; line-height: 20px; text-align: justify;&quot;&gt;Ctrl-Shift-B : 전체 프로젝트 빌드&lt;/span&gt;&lt;br style=&quot;font-size: 13.3333px; line-height: 20px; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; line-height: 20px; text-align: justify;&quot;&gt;Ctrl-F5 : 프로그램 시작&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;autosourcing-stub-extra&quot; style=&quot;position: absolute; opacity: 0; line-height: 20px; font-size: 13.3333px; text-align: justify;&quot;&gt;&lt;p style=&quot;margin: 11px 0px 7px; padding: 0px; line-height: 1.5; font-size: 12px; font-family: Dotum;&quot;&gt;&lt;strong style=&quot;padding: 0px 7px 0px 0px;&quot;&gt;[출처]&lt;/strong&gt;&amp;nbsp;&lt;a href=&quot;http://blog.naver.com/kstation79/70100300570&quot; target=&quot;_blank&quot;&gt;Visual Studio 단축키 모음&lt;/a&gt;&lt;span style=&quot;padding: 0px 7px 0px 5px;&quot;&gt;|&lt;/span&gt;&lt;strong style=&quot;padding: 0px 7px 0px 0px;&quot;&gt;작성자&lt;/strong&gt;&amp;nbsp;&lt;a href=&quot;http://blog.naver.com/kstation79&quot; target=&quot;_blank&quot;&gt;아잉&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/10</guid>
      <comments>https://hyem2.tistory.com/entry/visual-studio-%EB%8B%A8%EC%B6%95%ED%82%A4#entry10comment</comments>
      <pubDate>Sun, 21 Feb 2016 10:33:12 +0900</pubDate>
    </item>
    <item>
      <title>현재 디렉토리의 파일리스트/파일타입/파일정보(실행가능유무) 출력</title>
      <link>https://hyem2.tistory.com/entry/%ED%98%84%EC%9E%AC-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%9D%98-%ED%8C%8C%EC%9D%BC%EB%A6%AC%EC%8A%A4%ED%8A%B8%ED%8C%8C%EC%9D%BC%ED%83%80%EC%9E%85%ED%8C%8C%EC%9D%BC%EC%A0%95%EB%B3%B4%EC%8B%A4%ED%96%89%EA%B0%80%EB%8A%A5%EC%9C%A0%EB%AC%B4-%EC%B6%9C%EB%A0%A5</link>
      <description>&lt;p&gt;How to recognize executable files.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;현재 디렉토리의 파일들&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 433px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2770A73A56BB56212D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2770A73A56BB56212D&quot; width=&quot;433&quot; height=&quot;60&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;파일리스트를 출력하는 소스 test2.out 실행 결과&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 501px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/215C3F3956BB564516&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F215C3F3956BB564516&quot; width=&quot;501&quot; height=&quot;64&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;sicsim.c.swp는 작성 중에 vim 종료를 비정상적으로 해서 디스크에 swap되어 있는 것 같다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;디렉토리는 끝에 '/'를 출력하고 실행가능 파일은 끝에 '*'를 출력&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그럼 이제 소스를 보장&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 533px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/210A213A56BB59622A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F210A213A56BB59622A&quot; width=&quot;533&quot; height=&quot;590&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;괄호 안의 숫자들은 statbuf.st_mode를 8진수로 출력한 것&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 749px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/265A984056BB5DBF2B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F265A984056BB5DBF2B&quot; width=&quot;749&quot; height=&quot;54&quot; filename=&quot;4.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;값들의 의미를 살펴보자면 (6개의 숫자 중 하위 3개의 숫자들만)&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 424px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26062D3756BB604B15&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26062D3756BB604B15&quot; width=&quot;424&quot; height=&quot;350&quot; filename=&quot;6.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이런거라고 한다.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;위에 include한 헤더파일 중 sys/stat.h에 File type과 File mode bit를 위한 symbolic name들이 정의 되어 있다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/stat.h.html&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;요기 참고&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 574px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2275F74156BB5F3C35&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2275F74156BB5F3C35&quot; width=&quot;574&quot; height=&quot;864&quot; filename=&quot;5.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;실행 여부를 가늠하기 위해서는 S_IXUSR, S_IXGRP, S_IXOTH 값이 필요하다.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위의 값들은 8진수로 각각 100,10,1의 값을 가지고 있다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;그래서 위에서 출력한 파일 모드의 값들과 &amp;amp;(AND연산)을 하면 실행가능하면 1, 불가하면 0의 값이 나오는 것이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;S_ISDIR은 헤더파일에 정의되어 있는 함수로 파일이 디렉토리인지 아닌지를 출력해주는 함수이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/9</guid>
      <comments>https://hyem2.tistory.com/entry/%ED%98%84%EC%9E%AC-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%9D%98-%ED%8C%8C%EC%9D%BC%EB%A6%AC%EC%8A%A4%ED%8A%B8%ED%8C%8C%EC%9D%BC%ED%83%80%EC%9E%85%ED%8C%8C%EC%9D%BC%EC%A0%95%EB%B3%B4%EC%8B%A4%ED%96%89%EA%B0%80%EB%8A%A5%EC%9C%A0%EB%AC%B4-%EC%B6%9C%EB%A0%A5#entry9comment</comments>
      <pubDate>Thu, 11 Feb 2016 01:09:13 +0900</pubDate>
    </item>
    <item>
      <title>포인터</title>
      <link>https://hyem2.tistory.com/entry/%ED%8F%AC%EC%9D%B8%ED%84%B0</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;※포인터의 개념&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;C에서 int형 변수 a를 선언후 10을 대입한 후의 메모리를 추상적으로 나타내면 다음과 같다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(219, 232, 251); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;int a=10;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 180px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2628F53F56B448D20B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2628F53F56B448D20B&quot; width=&quot;180&quot; height=&quot;195&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;이때 a를 담고 있는 메모리 주소를 가리키는 포인터는 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;amp;a&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt; 로 표현한다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 260px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21740B3F56B448EC37&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21740B3F56B448EC37&quot; width=&quot;260&quot; height=&quot;184&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;포인터 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 9pt;&quot;&gt;&amp;amp;a&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;가 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;100번지&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;에 있는 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;정수형 공간&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;을, 또는 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;100번지&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;에 저장된 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;정수&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;를 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;가리킨다&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;고 말한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;a의 포인터 → &amp;amp;a&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;&amp;amp;: 포인터(주소) 연산자&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;- &amp;amp;a(a의 포인터)에 들어있는 정보&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;변수 a가 저장된 공간의 시작주소: 100&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;변수 a가 저장되는 방식: int(4byte 정수)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;※포인터가 가리키는 공간/값 얻기&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;포인터가 가리키는 공간을 얻는 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 9pt;&quot;&gt;참조연산자&lt;/span&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 9pt;&quot;&gt;*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 9pt;&quot;&gt;- 사용법: *&amp;nbsp;포인터&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(219, 232, 251); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 9pt;&quot;&gt;int a;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 16.3636px; font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 16.3636px; font-size: 9pt;&quot;&gt;→ &amp;nbsp; *(&amp;amp;a)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;해당 공간을 변수처럼 사용할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;-포인터가 가리키는 값 읽어서 변수에 저장하기&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(219, 232, 251); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;int a=10, b;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;b = *(&amp;amp;a)&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;-포인터가 가리키는 공간에 값 저장하기&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(219, 232, 251); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;int a, b = 10;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 1.5; font-size: 9pt;&quot;&gt;*(&lt;/span&gt;&lt;span style=&quot;line-height: 1.5; font-size: 9pt;&quot;&gt;&amp;amp;a) = b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;※포인터 저장&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;그럼 포인터는 어떤 자료형에 저장해야 하는가?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;int a; int b = &amp;amp;a;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;이렇게 하면 되나?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;그럼 'int'의 간접 참조수준이 'int*'과(와) 다릅니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;라는 에러를 만나게 될것이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;포인터를 저장하기 위해서는 새로운 자료형 변수가 필요하다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;- 포인터 자료형의 선언&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;가리키는 자료형 * &amp;nbsp;→ &amp;nbsp;int *, char*, double *, ...&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;int * : 포인터 자료형(*)인데 가리키는 자료형이 int 형&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 680px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21535A4656B450B00B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21535A4656B450B00B&quot; width=&quot;680&quot; height=&quot;319&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(219, 232, 251); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;int a = 10;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;int *p = &amp;amp;a;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;이 때 '&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;*&lt;/b&gt;&lt;/span&gt;'는 &lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;b&gt;포인터&lt;/b&gt;&lt;/span&gt;라는 의미이며&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt; &lt;b&gt;참조연산자의 의미가 아님&lt;/b&gt;&lt;/span&gt;. (*(&amp;amp;a)에 쓰였던 *와는 다름)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;- 가리키는 변수를 접근하여 읽고 쓰기&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;textarea name=&quot;code&quot; class=&quot;brush:c;&quot;&gt;int main(void)
{
int a=10, b;
int *p=&amp;amp;a;
b=*p+a;
p=&amp;amp;b;
p++;
printf(&quot;b = %d\n&quot;, b);

return 0;
}
&lt;/textarea&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming Language/C언어</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/8</guid>
      <comments>https://hyem2.tistory.com/entry/%ED%8F%AC%EC%9D%B8%ED%84%B0#entry8comment</comments>
      <pubDate>Fri, 5 Feb 2016 16:55:21 +0900</pubDate>
    </item>
    <item>
      <title>인터럽트</title>
      <link>https://hyem2.tistory.com/entry/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;1.인터럽트 개념&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;인터럽트란 일상 생활에서의 갑작스러운 사건이라고 할 수 있다. 예를 들어&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;인터럽트 요청: 학생이 질문 하였다면,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;상태저장: 강사는 설명하던 것을 잠시 멈추고,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;인터럽트 서비스: 학생의 질문에 답변을 한 후에,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;인터럽트 복귀: 다시 질문 전에 강의하던 내용으로 돌아와 계속 강의를 진행한다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;컴퓨터에서도 이와 같은 사건이 발생할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:9pt;&quot;&gt;컴퓨터의 정상적인 프로그램 실행을 방해하는 사건이 발생하는 것을 컴퓨터의 실행을 방해한다는 의미로 인터럽트라고 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;인터럽트는 컴퓨터내부와 외부에서 발생할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;컴퓨터 내부에서 발생하는 인터럽트가 발생하면 컴퓨터는 더이상 프로그램을 실행할 수가 없다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;-내부 인터럽트&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;하드웨어 고장: 데이터 전달 과정에서 비트 오류 혹은 컴퓨터 전원 꺼짐 등 프로그램의 실행과 관계 없음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;실행할 수 없는 명령어: 기억장치에서 인출한 명령어의 비트 패턴이 정의되어 있지 않아 CPU가 그 명령어를 실행할 수 없음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;명령어 실행 오류: 인출 명령어는 정상적이지만 명령어를 실행할 수 없는 경우.(ex. 인출한 명령어가 나누기인데, 나누는 수가 0)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;사용 권한 위배: 운영체제가 컴퓨터자원을 보호하기 위해 사용자가 접근할 수 있는 영역과 접근할 수 없는 영역을 제한해 놓았다. 만약 운영체제만 접근 가능한 영역에 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 1.5; font-size: 9pt;&quot;&gt;액세스하려고 한다면 인터럽트가 발생한다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;line-height: 1.5; font-size: 9pt;&quot;&gt;-외부 인터럽트&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;line-height: 1.5; font-size: 9pt;&quot;&gt;타이머 인터럽트&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;line-height: 1.5; font-size: 9pt;&quot;&gt;입추력 인터럽트: 속도가 느린 입출력장치가 입출력 준비가 완료되었다는 것을 중앙처리 장치에게 알리기 위하여 사용하는 인터럽트&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 1.5; font-size: 11pt;&quot;&gt;&lt;b&gt;2. 인터럽트 처리 과정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;①인터럽트 요청(interrupt request):&amp;nbsp;임의의 소스가 인터럽트를 요청&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;②인터럽트 승인(interrupt acknowledge): CPU는 인터럽트 요청을 인식하고, 인터럽트 소스에게 인터럽트를 확인하였을음 알려준다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;③상태 저장(context save):&amp;nbsp;CPU는 현재 실행하던 프로그램을 중단하고 현 상태를 저장한다.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;④인터럽트 서비스(interrupt service): CPU는 인터럽트 소스가 요구한 작업을 실행한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;⑤인터럽트에서 복귀(return form interrupt): CPU는 원래 실행하던 프로그램으로 복귀한다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;CPU는 인터럽트 소스가 요청한 작업을 수행하여야 하는데, 이것도 기억장치에 저장되어 있는 프로그램이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;이프로그램을 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;인터럽트 서비스 루틴(Interrupt Service Routine, ISR)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt; 혹은 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;인터럽트 핸들러(interrupt handler)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;라고 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;인터럽트 서비스 루틴은 인터럽트 종류마다 하나씩 기억장치에 준비되어 있어야 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;CPU가 인터럽트 요청을 인식하고 승인하기 위하여 중앙처리장치의 제어 버스는 다음과 같은 두개의 제어선을 포함하고 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터 공부/컴퓨터구조</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/7</guid>
      <comments>https://hyem2.tistory.com/entry/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8#entry7comment</comments>
      <pubDate>Wed, 3 Feb 2016 00:23:27 +0900</pubDate>
    </item>
    <item>
      <title>Process Synchronization</title>
      <link>https://hyem2.tistory.com/entry/Process-Synchronization</link>
      <description>&lt;p&gt;데이터를 활용해 명령어에 따라 실행을 하는 실행 장치는 다음과 같은 과정으로 데이터를 가져오고, 실행 후 저장한다.&lt;/p&gt;&lt;p&gt;①메모리에서 데이터를 가져온 뒤,&amp;nbsp;②데이터를 활용해 명령어에 따라 실행한다.&amp;nbsp;③실행 결과를 다시 메모리에 저장한다.&lt;/p&gt;&lt;p&gt;이 과정에서 같은 데이터를 가져오려는 실행장치가 여러 개이면 어떤 실행장치가 해당 데이터를 먼저 가져가고, 결과를 먼저 저장했는지에 따라&lt;/p&gt;&lt;p&gt;결과가 달라질 수 있다는 문제가 발생한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 예시1)은 사용자가 기대하는 기대하는 결과값이 storage box에 저장되는 경우이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;예시 2)는 데이터 로드 순서, 실행 순서가 섞이면서 오류가 난 경우이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(193, 193, 193); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;예시1)&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 280px; line-height: 16.3636px; text-align: center; background-color: rgb(255, 255, 255);; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/215E023756A499E311&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F215E023756A499E311&quot; width=&quot;280&quot; height=&quot;255&quot; filename=&quot;4.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 16.3636px; text-align: center; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 280px; line-height: 1.5; text-align: center; background-color: rgb(255, 255, 255);; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2257D23856A499F014&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2257D23856A499F014&quot; width=&quot;280&quot; height=&quot;254&quot; filename=&quot;5.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 280px; line-height: 1.5; text-align: center; background-color: rgb(255, 255, 255);; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2444EE3956A499FB0E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2444EE3956A499FB0E&quot; width=&quot;280&quot; height=&quot;245&quot; filename=&quot;6.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;(a) A에서 storage box에 있는 데이터 5를 로드한다.&lt;/p&gt;&lt;p&gt;(b) A를 실행 한 결과 값 6 이 storage box에 저장되고, 이 값을 B에서 로드한다.&lt;/p&gt;&lt;p&gt;(c) C를 실행 한 결과 값 5 가 storage box에 저장되어 최종 값은 5가 된다.&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(193, 193, 193); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;예시2)&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 280px; line-height: 16.3636px; text-align: center; background-color: rgb(255, 255, 255);; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2609A14356A497C722&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2609A14356A497C722&quot; width=&quot;280&quot; height=&quot;262&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 16.3636px; text-align: center; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 300px; line-height: 1.5; text-align: center; background-color: rgb(255, 255, 255);; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2247053856A4975520&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2247053856A4975520&quot; width=&quot;300&quot; height=&quot;272&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 280px; line-height: 1.5; text-align: center; background-color: rgb(255, 255, 255);; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2715F24456A497E312&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2715F24456A497E312&quot; width=&quot;280&quot; height=&quot;261&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 16.3636px; text-align: left; clear: none; float: none;&quot;&gt;(a) A가 storage box에 있는 데이터 5를 로드한 뒤, A가 실행되기 전 B가 storage box에 있는 데이터 5를 로드한다.&lt;/p&gt;&lt;p style=&quot;line-height: 16.3636px; text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 16.3636px; text-align: left; clear: none; float: none;&quot;&gt;(b) A가 실행된 후 결과 값인 6이 storage box에 저장된다.&lt;/p&gt;&lt;p style=&quot;line-height: 16.3636px; text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 16.3636px; text-align: left; clear: none; float: none;&quot;&gt;(c) B가 실행된 후 결과 값인 4가 storage box에 저장된다.&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 1.5; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 1.5; text-align: left;&quot;&gt;위에 나타난 예시처럼 하나의 저장공간을 여러 프로그램들이 공유하여 사용하는 경우 결과 값이 달라질 수 있으며&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 1.5; text-align: left;&quot;&gt;이러한 상황을 &lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;race condition (경쟁 상태)&amp;nbsp;&lt;/span&gt;&lt;/b&gt;이라고 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 1.5; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;race condition이 발생할 수 있는 경우는 다음과 같다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;a. kernel 수행 중 인터럽트 발생시&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;b. process가 system call을 하여 kernel mode로 수행 중인데 context switch가 일어난 뒤 다른 process에서도 system call을 하여 kernel mode를 수행할 경우&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;c. multiprocessor에서 shared memory 내의 kernel data&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;&lt;b&gt;a. kernel 수행 중 인터럽트 발생시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 643px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23570B4056A4EB9018&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23570B4056A4EB9018&quot; width=&quot;643&quot; height=&quot;305&quot; filename=&quot;7.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;커널모드에서 count++을 수행하게 되면 세단계를 거친다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;① 메모리에서 cpu레지스터로 count값을 load&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;② cpu에서 count값 증가&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;③ 증가 시킨 값을 메모리에 저장&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;이 과정에서 인터럽트가 중간에 걸려 count값을 감소하는 코드가 실행된다면, 최종 결과값은 기존 count 값이어야 한다. (kernel:count++)+(interrupt:count--)=count&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;그런데 결과값은 count에서 1증가한&amp;nbsp;count+1값이 나온다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;그 이유는 interrupt에서 count값 감소 전에 이미 kernel에서 cpu레지스터로 count값을 load해 갔기 때문이다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;해결방법&lt;/b&gt;: kernel mode에서 수행 중에는 interrupt disable로 설정&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;b. kernel모드에서 context switch가 발생하는 경우&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 654px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/263A7B3456A4E92B3A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F263A7B3456A4E92B3A&quot; width=&quot;654&quot; height=&quot;530&quot; filename=&quot;8.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;각 프로세스는 자신만의 address space를 가지고 있어 data sharing이 없다&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;그러나 system call을 통해 kernel mode에서 프로세스 수행시에는 kernel address space의 data를 access하게 된다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이 작업 중간에 CPU를 다른 프로세스에서 preempt해서 이 프로세스가 kernel mode에서 수행하게 되면 race condition이 발생하게 된다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 604px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2725C54156A4EFD802&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2725C54156A4EFD802&quot; width=&quot;604&quot; height=&quot;409&quot; filename=&quot;9.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;프로세스A에서 커널모드로 수행 중 increment 수행을 하기 위해 데이터를 load하고나서,&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;프로세스A의 할당 시간이 끝나고 다른 프로세스에게 CPU할당이 되어야 한다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;프로세스B가 CPU할당을 받은 뒤에 커널모드에서 increment를 수행한다. 예상결과 값은 기존 count에서 2증가한&amp;nbsp;count+2 지만 1만 증가한 상태가 된다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b style=&quot;line-height: 16.3636px;&quot;&gt;해결방법&lt;/b&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;: 커널모드에서 수행 중일 때는 할당시간이 끝나도 CPU를 preempt하지 않음. 커널모드에서 사용자 모드로 돌아갈 때 preempt한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;&lt;b&gt;c. multiprocessor에서 shared memory 내의 kernel data&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 515px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2278223956A4F46427&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2278223956A4F46427&quot; width=&quot;515&quot; height=&quot;219&quot; filename=&quot;10.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;line-height: 16.3636px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;어떤 CPU가 먼저 count값을 load하고 언제 load하느냐에 따라 결과 값이 달라질 수 있다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;해결방법: (1) &lt;/b&gt;한번에 하나의 CPU만이 커널에 들어갈 수 있게 하는 방법&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;(2)&lt;/b&gt; 커널 내부에 있는 각 공유 데이터에 접근할 때마다 그 데이터에 대한 lock/unlock을 하는 방법&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : 처음에 접근한 CPU가 공유데이터를 가져갔을 때 그 데이터에 lock을 걸어서 다른 CPU가 가져가지 못하게 하고&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;먼저 접근한 CPU가 처리를 끝내고 저장하고 나서는 unlock을 해서 다른 CPU가 공유데이터를 가져갈 수 있도록 한다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터 공부/운영체제</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/6</guid>
      <comments>https://hyem2.tistory.com/entry/Process-Synchronization#entry6comment</comments>
      <pubDate>Sun, 24 Jan 2016 18:50:23 +0900</pubDate>
    </item>
    <item>
      <title>스택포인터</title>
      <link>https://hyem2.tistory.com/entry/%EC%8A%A4%ED%83%9D%ED%8F%AC%EC%9D%B8%ED%84%B0</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;※스택이란?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;FILO(First In Last Out)형태로 데이터를 액세스하는 데이터 구조이다. 즉, 가장 나중에 들어온 것부터 차례로 액세스하는 것이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Heap은 Stack과 반대로&amp;nbsp;FIFO형태로 데이터를 액세스한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;스택은 한 곳으로만 액세스할 수 있으며, 이부분을 스택의 탑이라고 한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 575px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/244A2738569C8CB71C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F244A2738569C8CB71C&quot; width=&quot;575&quot; height=&quot;403&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;FILO의 액세스 순서 :&amp;nbsp;5 → 4&amp;nbsp;&lt;span style=&quot;line-height: 1.5;&quot;&gt;→ 3&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;→ 2&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;→ 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;FIFO의 액세스 순서 : 1&amp;nbsp;&lt;span style=&quot;line-height: 1.5;&quot;&gt;→ 2&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;→ 3&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;→ 4&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;→ 5&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;중앙처리장치는 기억장치의 특정 영역을 스택 영역으로 지정하여 운영한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 380px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/271F7348569C8F042E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F271F7348569C8F042E&quot; width=&quot;380&quot; height=&quot;325&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;스택에 저장되는 데이터의 크기는 레지스터의 크기, 데이터 버스의 폭과 같다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;즉 스택은 컴퓨터의 &lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;단어(word)단위로 액세스&lt;/b&gt;&lt;/span&gt; 된다. 만일 기억장치가 바이트 단위로 구성되어 있고 레지스터의 크기가 16비트이면, 두 개의 기억장소에 한개의 데이터가 저장된다.&amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 419px; line-height: 1.5; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/245A8B36569D06562F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F245A8B36569D06562F&quot; width=&quot;419&quot; height=&quot;249&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;또한 데이터가 스택에 추가 될수록&lt;b&gt; 스택의 주소값은 점점 작아진다&lt;/b&gt;.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;그 이유는 두가지가 있다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;(1) 스택이 항상 커널의 반대 방향으로 자라기 때문에 커널 영역에 침범하는 일이 없게된다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;(2) 힙 영역은 스택과 달리 새로운 데이터가 추가될수록 더 큰 메모리 주소를 할당 받는다. 때문에 메모리 공간을 알뜰하게 사용할 수 있게 된다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 575px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/220B583C569D0B0416&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F220B583C569D0B0416&quot; width=&quot;575&quot; height=&quot;211&quot; filename=&quot;7.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;※스택포인터란?&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;중앙처리 장치 안에는 스택에 데이터가 채워진 위치를 가리키는 레지스터인 스택 포인터(SP)를 갖고 있다. 스택포인터가 가리키는 곳까지가 데이터가 채워진 영역이고, 그 이후부터 스택 끝까지는 비어있는 영역이다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;스택에 새로운 항목이 추가되거나 스택에서 데이터가 제거되면, 스택 포인터의 값이 증가하거나 감소한다.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;스택은 PUSH와 POP 두가지 동작에 의하여 액세스된다.&amp;nbsp;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;PUSH : 스택에 데이터 추가&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;POP : 스택에서 데이터 제거&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;span style=&quot;background-color: rgb(234, 234, 234);&quot;&gt;PUSH 오퍼&lt;/span&gt;&lt;span style=&quot;background-color: rgb(234, 234, 234);&quot;&gt;랜드 &amp;nbsp; //오퍼랜드를 스택에 저장하라.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;span style=&quot;background-color: rgb(234, 234, 234);&quot;&gt;POP 오퍼랜드 &amp;nbsp; &amp;nbsp;//스택에서 제거한 데이터를 오퍼랜드에 저장해라.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; color: rgb(0, 0, 0); font-family: 돋움; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 16px; line-height: 24px;&quot;&gt;※스택과 스택포인터의 작동 예시&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;다음 그림은 어느 한 순간 레지스터와 스택의 모습이다. 이 예는 다음과 같은 가정을 하고 있다.&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;범용 레지스터 R0와 R1의 크기는 16비트이다.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;기억장치는 바이트 단위로 주소가 지정되며, 스택은 16비트 단위로 액세스 된다.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;기억장치의 주소는 16비트이다. 따라서 SP의 크기도 16비트이다.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;SP의 값은 1008h이고, SP가 가리키는 장소까지 데이터가 저장되어 있다.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;기억장치의 100ch번지부터 스택영역이고, 현재 세&amp;nbsp;개의 데이터가 스택에 저장되어 있다.&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 278px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/243E7639569D0C0D19&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F243E7639569D0C0D19&quot; width=&quot;278&quot; height=&quot;203&quot; filename=&quot;4.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 278px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2544E139569D0C0E12&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2544E139569D0C0E12&quot; width=&quot;278&quot; height=&quot;218&quot; filename=&quot;5.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 278px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2353BA39569D0C1001&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2353BA39569D0C1001&quot; width=&quot;278&quot; height=&quot;217&quot; filename=&quot;6.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;중앙처리 장치는 PUSH[오퍼랜드] 명령어를 다음과 같은 두 단계의 동작으로 실행한다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;SP ← SP - [단어의 크기] &amp;nbsp; &amp;nbsp; // SP를 단어 크기만큼 증가시킨다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;Mem[SP]&amp;nbsp;&lt;span style=&quot;line-height: 1.5;&quot;&gt;← 오퍼랜드&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt; 스택에 오퍼랜드를 저장한다.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;(b) PUSH R0 실행 후&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;① 스택 TOP의 주소값인&amp;nbsp;스택포인터가 1008h 에서 1006h로 감소&lt;br /&gt;&lt;/p&gt;&lt;p&gt;②&amp;nbsp;기억장치 1006h번지에 R0의 값 4444h가 저장됨&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;중앙처리 장치는 POP[오퍼랜드] 명령어를 다음과 같은 두 단계의 동작으로 실행한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;SP ← SP - [단어의 크기]&amp;nbsp;&amp;nbsp; &amp;nbsp; // SP를 단어 크기만큼 증가시킨다.&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;Mem[SP]&amp;nbsp;&lt;span style=&quot;line-height: 1.5;&quot;&gt;← 오퍼랜드&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt; 스택에 오퍼랜드를 저장한다.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;(c) POP R1 실행 후&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;① R1의 값이 4444h로 변경&lt;br /&gt;&lt;/p&gt;&lt;p&gt;②&amp;nbsp;SP의 값이 1008h로 증가&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* POP 이후로는 1008h (SP)위의 메모리는 사용하지 않는다. 1006h번지의 4444h값은 남아있으나,&amp;nbsp;무의미한 쓰레기값이며, 이후 다른 PUSH명령어가 실행되면 이 값은 다른 값으로 대체된다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;[출처] 생능출판사&amp;nbsp;한눈에 보이는 컴퓨터 구조 -&amp;nbsp;전중남&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 0px; color: rgb(0, 0, 0); font-family: 돋움; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;&quot;&gt;&lt;/p&gt;</description>
      <category>컴퓨터 공부/컴퓨터구조</category>
      <category>POP</category>
      <category>Push</category>
      <category>스택</category>
      <category>스택포인터</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/5</guid>
      <comments>https://hyem2.tistory.com/entry/%EC%8A%A4%ED%83%9D%ED%8F%AC%EC%9D%B8%ED%84%B0#entry5comment</comments>
      <pubDate>Mon, 18 Jan 2016 16:10:10 +0900</pubDate>
    </item>
    <item>
      <title>ㅜㅜ</title>
      <link>https://hyem2.tistory.com/entry/%E3%85%9C%E3%85%9C</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/273B523E569A6D2B2B&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;sitemap.xml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터 공부</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/4</guid>
      <comments>https://hyem2.tistory.com/entry/%E3%85%9C%E3%85%9C#entry4comment</comments>
      <pubDate>Sun, 17 Jan 2016 01:18:24 +0900</pubDate>
    </item>
    <item>
      <title>1. 컴퓨터 시스템 구조와 프로그램 실행</title>
      <link>https://hyem2.tistory.com/entry/1-%EC%BB%B4%ED%93%A8%ED%84%B0-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%A1%B0%EC%99%80-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%8B%A4%ED%96%89</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 575px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2659A136569A548728&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2659A136569A548728&quot; width=&quot;575&quot; height=&quot;379&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;컴퓨터의 기본 구조는 이렇다.&lt;/p&gt;&lt;p&gt;컴퓨터를 부팅하고 나면 OS는 항상 메모리&lt;span style=&quot;line-height: 1.5;&quot;&gt;에 올&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;라와 있으면서 사용&lt;/span&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;자가 컴퓨터를 사용하는 것에 있어서 모든것을 관장한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 575px; line-height: 1.5; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/237FB438569A29F320&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F237FB438569A29F320&quot; width=&quot;575&quot; height=&quot;123&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center;&quot;/&gt;&lt;/span&gt;컴퓨터 실행은 위 그림과 같은 과정을 반복하는 것이 전부이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;인출단계: 메모리에서 프로그램 명령어를 읽어온다.&lt;/p&gt;&lt;p&gt;실행단계: 명령어에 따라 실행한다.&lt;/p&gt;&lt;p&gt;인터럽트: 실행단계 중 인터럽트가 들어왔나 확인한다. 인터럽트가 있었으면 인터럽트 단계를 실행하고 없었으면 인출단계부터 다시 반복&lt;/p&gt;&lt;p&gt;CPU가 하는 일이라곤 메모리에서 명령어(instruction)을 읽어와서 실행하는 것뿐이다.&lt;/p&gt;&lt;p&gt;어떤 일을 할지는 어떤 interrupt가 걸릴지, 어떤 프로그램의 명령어를 읽어오는 지에 달려있는 것이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;인터럽트가 걸리는 예시는 다음과 같다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 575px; line-height: 1.5; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/243E1642569A3F1A07&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F243E1642569A3F1A07&quot; width=&quot;575&quot; height=&quot;319&quot; filename=&quot;6.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;첫번째, 입출력 장치 구동이 필요할 때&lt;/p&gt;&lt;p&gt;프로그램A를 수행하는 중엔 CPU권한이 사용자 프로그램A에게 있다.&lt;/p&gt;&lt;p&gt;프로그램A를 수행하다가 I/O 입력을 받아야 되면 interrupt를 건다.&lt;/p&gt;&lt;p&gt;interrupt를 걸면 CPU권한이 OS로 넘어간다. OS에서는 프로그램A가 일으킨 interrupt코드를 수행한다. (interrupt코드는 커널함수에 포함되어 있음)&lt;/p&gt;&lt;p&gt;OS는 I/O device&amp;nbsp;수행에 관련된 일을 Device controller에게 넘기고&lt;/p&gt;&lt;p&gt;I/O에서 데이터를 읽어오는 것은 오래걸리므로 입출력이 끝날때까지 OS는 CPU 스케쥴링을 통해 다른 프로그램을 수행하도록 한다. CPU권한은 OS가 권한을 넘겨준 프로그램B에게 넘어가게 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;두번째, timer interrupt&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 575px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/266E2B43569A533901&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F266E2B43569A533901&quot; width=&quot;575&quot; height=&quot;343&quot; filename=&quot;7.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하나의 사용자 프로그램이 CPU를 독점하는 것을 막기위해 timer를 사용하는데, 미리 설정해둔 시간이 지나면 사용자 프로그램에서 I/O입출력을 요청하지 않아도 interrupt를 timer에서 발생시켜 CPU권한을 OS로 넘겨준다. 사용자 프로그램A는 4번째 명령어를 실행하다가 인터럽트가 걸려 5번째 명령어를 실행하지 못하고 OS로 CPU권한이 넘어가는 것이다.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;이렇게 하지 않으면 사용자프로그램에서 무한루프를 도는 경우 하나의 다른 프로그램을 실행할 수 없다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;처음 내가 착각했던 것은 사용자 프로그램에서 OS로 CPU권한을 넘겨주는 것이 가능하다고 생각했다. 하지만 CPU권한을 누구에게 줄지를 결정하는 것은 OS만이 할 수 있다. 이 때문에 CPU권한을 다른 사용자 프로그램에게 넘기는 것이던, OS에게 넘기는 것이던 interrupt를 걸어서 일단 CPU권한을 OS로 넘겨줘야 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;운영체제가 하는 일은 이렇게 OS던 사용자 프로그램이던 프로그램이 실행되면서 자원을 사용하게 되는데 인터럽트를 이용해서 모든 프로그램이 자원을 공평하게 사용할 수 있도록 하는 것이다.&lt;/p&gt;&lt;p&gt;복잡한 컴퓨터 시스템 구조는 다음 그림과 같다. 차근차근 살펴보도록 하자.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 425px; line-height: 1.5; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26410246569A16730D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26410246569A16730D&quot; width=&quot;425&quot; height=&quot;315&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center;&quot;/&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1.1. Mode bit&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호장치가 필요하다. 예를 들어 사용자 프로그램이 운영체제 코드에 접근하여 수정을 했는데 오류가 있다면 이는 심각한 문제를 초래할 것이다. &amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;이를 막기위해 Mode bit가 존재한다.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;b&gt;1 &lt;/b&gt;사용자 모드: 사용자 프로그램 수행&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &lt;b&gt;0 &lt;/b&gt;모니터 모드: OS 코드 수행&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;-Iterrupt나&amp;nbsp;Exception이&amp;nbsp;발생하면&lt;b&gt; mode bit를 0&lt;/b&gt;으로 바꾼다.&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 사용자 프로그램에게 CPU를 넘기기 전에&lt;b&gt; mode bit를 1&lt;/b&gt;로 바꾼다&lt;span style=&quot;line-height: 1.5;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 381px; line-height: 1.5; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2602FA40569A556B21&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2602FA40569A556B21&quot; width=&quot;381&quot; height=&quot;179&quot; filename=&quot;8.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;line-height: 1.5; text-align: center;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;한마디로 Mode bit가 0일 때는 어떤 일이든 실행가능하지만, 1일 때는 제한된 명령어만 실행 가능하다.&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1.2 Timer&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킴&lt;/li&gt;&lt;li&gt;타이머는 매 클럭 틱 때마다 1씩 감소&lt;/li&gt;&lt;li&gt;타이머 값이 0이 되면 타이머 인터럽트 발생&lt;/li&gt;&lt;li&gt;CPU를 특정 프로그램이 독점하는 것으로부터 보호&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터 공부/운영체제</category>
      <category>운영체제</category>
      <category>컴퓨터 시스템 구조</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/3</guid>
      <comments>https://hyem2.tistory.com/entry/1-%EC%BB%B4%ED%93%A8%ED%84%B0-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%A1%B0%EC%99%80-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%8B%A4%ED%96%89#entry3comment</comments>
      <pubDate>Sat, 16 Jan 2016 23:37:03 +0900</pubDate>
    </item>
    <item>
      <title>create tsv file</title>
      <link>https://hyem2.tistory.com/entry/create-tsv-file</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://resources.mpi-inf.mpg.de/yago-naga/javatools/&quot;&gt;&lt;u&gt;http://resources.mpi-inf.mpg.de/yago-naga/javatools/&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Download the javatools.zip from above site&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; 위의 사이트에서 javatools.zip 파일을 다운로드한다.&lt;/p&gt;
&lt;p&gt;2. Decompress the .zip file&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.zip 파일 압축을 푼다.&lt;/p&gt;
&lt;p&gt;3. Make file named &quot;javatools&quot; in the javatools file you just decompressed&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; (I guess source of this library is set wrong path in the source code, so this step is neccessary to move source to the path that&amp;nbsp; is set)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; 압축을 푼 javatools 파일 안에 &quot;javatools&quot; 이름으로 디렉토리를 하나 만든다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; (소스코드의 파일 경로 설정이 잘못되어 있는 것 같다. 그러므로 설정 되어 있는 path로 소스코드들을 옮겨주는 이 단계는 아주 중요한 단계)&lt;/p&gt;
&lt;p&gt;4. Move files which are in the bin directory to the &quot;javatools&quot;directoriy&amp;nbsp;you just made&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; bin 디렉토리에 있는 파일들을 모두 만들어준 &quot;javatools&quot; 디렉토리로 옮긴다.&lt;/p&gt;
&lt;p&gt;5. Add javatools.zip as a library in the eclipse&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; javatools.zip 을 이클립스에서 라이브러리로 추가한다&lt;/p&gt;
&lt;p&gt;6. Use TSVWriter Class and write data you want&lt;/p&gt;
&lt;p&gt;&amp;nbsp; 이제 TSVWriter Class를 이용하여 TSV파일을 만들어주면 된다&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;strong&gt;Documentation&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://resources.mpi-inf.mpg.de/yago-naga/javatools/doc/javatools/filehandlers/package-summary.html&quot;&gt;&lt;u&gt;http://resources.mpi-inf.mpg.de/yago-naga/javatools/doc/javatools/filehandlers/package-summary.html&lt;/u&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;textarea name=&quot;code&quot;  class=&quot;brush:java;&quot;&gt;package makeNERClassifier;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javatools.filehandlers.TSVWriter;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.process.CoreLabelTokenFactory;
import edu.stanford.nlp.process.PTBTokenizer;
import edu.stanford.nlp.process.WordTokenFactory;

public class example {

	public static void main(String[] args) throws 
	IOException
	{
	tokenize(&quot;C:\\Users\\Hyemi\\Desktop\\웹크롤러\\Test
	\\Text\\t2.txt&quot;);
	}

	public static void tokenize(String fileName) 
	throws IOException
	{
	WordTokenFactory wf=new WordTokenFactory();File file = new File(&quot;C:\\Users\\Hyemi\\Desktop
	\\웹크롤러\\Test\\Text\\t2.tsv&quot;);
	TSVWriter tw = new TSVWriter(file);PTBTokenizer&amp;lt;corelabel&amp;gt; ptbt = new PTBTokenizer&amp;lt;&amp;gt;
	(new FileReader(fileName), 
	new CoreLabelTokenFactory(), 
	&quot;normalizeParentheses=false&quot;);
	while (ptbt.hasNext()) 
	{
	CoreLabel label = ptbt.next();tw.write(label.toString());System.out.println(label)}
	}

}

 &lt;/textarea&gt;</description>
      <category>Programming Language/Java</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/2</guid>
      <comments>https://hyem2.tistory.com/entry/create-tsv-file#entry2comment</comments>
      <pubDate>Tue, 29 Sep 2015 22:38:20 +0900</pubDate>
    </item>
    <item>
      <title>Jython 설치</title>
      <link>https://hyem2.tistory.com/entry/Jython-%EC%84%A4%EC%B9%98</link>
      <description>&lt;P style=&quot;WORD-WRAP: break-word; FONT-SIZE: 15px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; BORDER-BOTTOM: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px 0px 0.5em; BORDER-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;&lt;A href=&quot;http://www.jython.org/downloads.html&quot;&gt;http://www.jython.org/downloads.html&lt;/A&gt;&lt;/P&gt;
&lt;P style=&quot;WORD-WRAP: break-word; FONT-SIZE: 15px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; BORDER-BOTTOM: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px 0px 0.5em; BORDER-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL style=&quot;LIST-STYLE-TYPE: decimal; BORDER-TOP: 0px; BORDER-RIGHT: 0px; WHITE-SPACE: normal; WORD-SPACING: 0px; BORDER-BOTTOM: 0px; TEXT-TRANSFORM: none; COLOR: rgb(34,34,34); PADDING-BOTTOM: 0px; TEXT-ALIGN: left; PADDING-TOP: 0px; FONT: 15px/19px 'Helvetica Neue', Helvetica, Arial, sans-serif; PADDING-LEFT: 0px; MARGIN: 0px 0px 1em 30px; BORDER-LEFT: 0px; WIDOWS: 1; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px&quot;&gt;
&lt;LI style=&quot;WORD-WRAP: break-word; FONT-SIZE: 15px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; BORDER-BOTTOM: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px 0px 0.5em; BORDER-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;Run &quot;jython-installer-2.7.x.jar&quot; as below command: java -jar jython-installer-2.7.x.jar&lt;/LI&gt;
&lt;LI style=&quot;WORD-WRAP: break-word; FONT-SIZE: 15px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; BORDER-BOTTOM: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px 0px 0.5em; BORDER-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;Follow the instruction from Jython Installation pop up&lt;/LI&gt;
&lt;LI style=&quot;WORD-WRAP: break-word; FONT-SIZE: 15px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; BORDER-BOTTOM: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px 0px 0.5em; BORDER-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;After successful installation set PATH as C:\jython2.7b1\bin&lt;/LI&gt;
&lt;LI style=&quot;WORD-WRAP: break-word; FONT-SIZE: 15px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; BORDER-BOTTOM: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px 0px 0.5em; BORDER-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;Open command prompt and execute the command as below: jython --version&lt;/LI&gt;
&lt;LI style=&quot;WORD-WRAP: break-word; FONT-SIZE: 15px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; BORDER-BOTTOM: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px 0px 0.5em; BORDER-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;The output as &quot;Jython 2.7b1&quot; would verify the complete installation and setting path&lt;/LI&gt;&lt;/OL&gt;</description>
      <category>Programming Language/Jython(Python+Java)</category>
      <author>hyem_2</author>
      <guid isPermaLink="true">https://hyem2.tistory.com/1</guid>
      <comments>https://hyem2.tistory.com/entry/Jython-%EC%84%A4%EC%B9%98#entry1comment</comments>
      <pubDate>Tue, 29 Sep 2015 05:37:59 +0900</pubDate>
    </item>
  </channel>
</rss>