<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>when a man love(s) a woman...</title>
    <link>https://afewgood.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 9 Apr 2026 17:50:14 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>afewgood</managingEditor>
    <item>
      <title>VisualStudio2008 관련 몇가지</title>
      <link>https://afewgood.tistory.com/48</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;1. WindowsXP에서 VisualStudio2008 설치시 오류발생할 경우&lt;br /&gt;&amp;nbsp; Visual C# 과 Visual Basic 하위의&lt;br /&gt;&amp;nbsp; VisualStudioTools for Microsoft Office 선택 해제후 설치&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;2. VisualStudio2008 최신목록 파일/프로젝트폴더 제거&lt;br /&gt;&amp;nbsp; regedit &amp;rarr; HKEY_CURRENT_USER &amp;rarr; Software &amp;rarr; Microsoft &amp;rarr; VisualStudio &amp;rarr; 9.0 &amp;rarr;&lt;br /&gt;&amp;nbsp; FileMRUList: 최신목록 파일제거&lt;br /&gt;&amp;nbsp; ProjectMRUList: 최신목록 프로젝트폴더 제거&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;3. VisualStudio2008 설치후 C#프로그래밍 후 게시 안되고&lt;br /&gt;&amp;nbsp; &quot;Signtool.exe를 찾을 수 없습니다&quot; 나올때&lt;br /&gt;&amp;nbsp; 도구 &amp;rarr; 옵션 &amp;rarr; 프로젝트 및 솔루션 &amp;rarr; VC++디렉토리 &amp;rarr;&lt;br /&gt;&amp;nbsp; 다음파일의 디렉터리표시(S)항목에서 &quot;라이브러리파일&quot; 선택 후&lt;br /&gt;&amp;nbsp; &quot;C:\Program Files\Microsoft SDKs\Windows\V6.0A\Lib&quot; 지정 후 확인&lt;/p&gt;</description>
      <category>windows</category>
      <category>VisualStudio 2008</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/48</guid>
      <comments>https://afewgood.tistory.com/48#entry48comment</comments>
      <pubDate>Fri, 3 Nov 2023 16:08:44 +0900</pubDate>
    </item>
    <item>
      <title>PuTTY 보안(ssh)키 저장위치</title>
      <link>https://afewgood.tistory.com/47</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;HKEY_USERS\S-1-5-21-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxx\Software\SimonTatham\PuTTY\SshHostKeys&lt;/span&gt;&lt;/p&gt;</description>
      <category>etc</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/47</guid>
      <comments>https://afewgood.tistory.com/47#entry47comment</comments>
      <pubDate>Mon, 28 Aug 2023 10:13:19 +0900</pubDate>
    </item>
    <item>
      <title>fopen() open() Example</title>
      <link>https://afewgood.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;int&amp;nbsp;fopen_exmaple(void) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; unsigned char data[40], buf[40]; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;FILE&amp;nbsp;*fRead,&amp;nbsp;*fWrite; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;int&amp;nbsp;readPOS=0,&amp;nbsp;readLen,&amp;nbsp;writePOS=0,&amp;nbsp;writeLen; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;//Open&amp;nbsp;input&amp;nbsp;file &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fRead&amp;nbsp;=&amp;nbsp;fopen(&quot;afewgood.dat&quot;,&amp;nbsp;&quot;rb&quot;); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;if(fRead == NULL)&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;return -1; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;//Open&amp;nbsp;output&amp;nbsp;file &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fWrite&amp;nbsp;=&amp;nbsp;fopen(&quot;afewgoodR.dat&quot;,&amp;nbsp;&quot;wb&quot;); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;if(fWrite&amp;nbsp;==&amp;nbsp;NULL) &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;{ &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fclose(fRead); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;return&amp;nbsp;-2; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;} &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;while(!feof(fRead)) &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;{ &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;memset(data,&amp;nbsp;0x00,&amp;nbsp;sizeof(data)); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;readLen&amp;nbsp;=&amp;nbsp;fread(data,&amp;nbsp;1,&amp;nbsp;40,&amp;nbsp;fRead); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;if(readLen == 0)&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;break; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fseek(fRead,&amp;nbsp;readPOS,&amp;nbsp;SEEK_SET); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;readPOS&amp;nbsp;+=&amp;nbsp;readLen; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;memset(buf,&amp;nbsp;0x00,&amp;nbsp;sizeof(buf)); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;memcpy(buf,&amp;nbsp;data,&amp;nbsp;40); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;writeLen&amp;nbsp;=&amp;nbsp;40; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fwrite(buf,&amp;nbsp;1,&amp;nbsp;writeLen,&amp;nbsp;fWrite); &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fseek(fWrite,&amp;nbsp;writePOS,&amp;nbsp;SEEK_SET); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;writePOS&amp;nbsp;+=&amp;nbsp;writeLen; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;} &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fclose(fRead); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fclose(fWrite); &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;sync(); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;return&amp;nbsp;0; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;fcntl.h&amp;gt; &lt;br /&gt;#include&amp;nbsp;&amp;lt;unistd.h&amp;gt; &lt;br /&gt;&lt;br /&gt;int&amp;nbsp;open_example(void) &lt;br /&gt;{ &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;unsigned&amp;nbsp;char&amp;nbsp;data[40],&amp;nbsp;buf[40]; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;int&amp;nbsp;fRead,&amp;nbsp;fWrite; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;int&amp;nbsp;readPOS=0,&amp;nbsp;readLen,&amp;nbsp;writePOS=0,&amp;nbsp;writeLen; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;//Open&amp;nbsp;input&amp;nbsp;file &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fRead&amp;nbsp;=&amp;nbsp;open(&quot;afewgood.dat&quot;,&amp;nbsp;O_RDONLY); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;if(fRead == '\0')&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;return -1; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;//Open&amp;nbsp;output&amp;nbsp;file &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;fWrite&amp;nbsp;=&amp;nbsp;open(&quot;afewgoodR.dat&quot;,&amp;nbsp;O_RDWR|O_CREAT,&amp;nbsp;S_IRUSR|S_IWUSR); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;if(fWrite&amp;nbsp;==&amp;nbsp;'\0') &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;{ &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;close(fRead); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;return&amp;nbsp;-2; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;} &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;while(1) &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;{ &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;memset(data,&amp;nbsp;0x00,&amp;nbsp;sizeof(data)); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;readLen&amp;nbsp;=&amp;nbsp;read(fRead,&amp;nbsp;data,&amp;nbsp;40); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;if(readLen == 0)&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;break; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;lseek(fRead,&amp;nbsp;readPOS,&amp;nbsp;SEEK_SET); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;readPOS&amp;nbsp;+=&amp;nbsp;readLen; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;memset(buf,&amp;nbsp;0x00,&amp;nbsp;sizeof(buf)); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;memcpy(buf,&amp;nbsp;data,&amp;nbsp;40); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;writeLen&amp;nbsp;=&amp;nbsp;40; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;write(fWrite,&amp;nbsp;buf,&amp;nbsp;writeLen); &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;lseek(fWrite,&amp;nbsp;writePOS,&amp;nbsp;SEEK_SET); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;writePOS&amp;nbsp;+=&amp;nbsp;writeLen; &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;} &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;close(fRead); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;close(fWrite); &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;sync(); &lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;return&amp;nbsp;0; &lt;br /&gt;} &lt;/p&gt;</description>
      <category>c</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/46</guid>
      <comments>https://afewgood.tistory.com/46#entry46comment</comments>
      <pubDate>Tue, 7 Mar 2023 20:24:19 +0900</pubDate>
    </item>
    <item>
      <title>log파일 만들기 source</title>
      <link>https://afewgood.tistory.com/45</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;#include&amp;nbsp;&amp;lt;string.h&amp;gt; &lt;br /&gt;#include&amp;nbsp;&amp;lt;unistd.h&amp;gt; &lt;br /&gt;#include&amp;nbsp;&amp;lt;fcntl.h&amp;gt; &lt;br /&gt;#include&amp;nbsp;&amp;lt;sys/stat.h&amp;gt; &lt;br /&gt;#include&amp;nbsp;&amp;lt;sys/time.h&amp;gt; &lt;br /&gt;#include&amp;nbsp;&amp;lt;time.h&amp;gt; &lt;br /&gt;&lt;br /&gt;void&amp;nbsp;write_log(char&amp;nbsp;*data,&amp;nbsp;int&amp;nbsp;len) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; int fd, i, pos, index; &lt;br /&gt;&amp;nbsp; &amp;nbsp; unsigned int bGetIndex=0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; char current, flag=0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; char buf[24], contents[440];&amp;nbsp; &amp;nbsp; //로그 data 및 로그파일 사이즈 440=LOGData(X.22)*20 &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; fd = open(&quot;afewgood.log&quot;, O_RDWR); &lt;br /&gt;&amp;nbsp; &amp;nbsp; if(fd &amp;lt; 0)&amp;nbsp; &amp;nbsp; return; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; memset(contents, 0x00, sizeof(contents)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; read(fd, contents, sizeof(contents)); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; //Get Index &amp;amp; Flag ------------------------------------------------------------ &lt;br /&gt;&amp;nbsp; &amp;nbsp; current = contents[0]; &lt;br /&gt;&amp;nbsp; &amp;nbsp; if(current&amp;lt;'A' || current&amp;gt;'Z') &lt;br /&gt;&amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flag = 'A'; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; index = 0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bGetIndex = 1; &lt;br /&gt;&amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; else &lt;br /&gt;&amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pos = 0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for(i=0; i&amp;lt;20; i++) //20=data 갯수 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; memset(buf, 0x00, sizeof(buf)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; memcpy(buf, &amp;amp;contents[pos], len+1); //+1=flag(X.1) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pos += len+1; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(buf[0] != current) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flag = contents[pos-((len+1)*2)]; //+1=flag(X.1) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; index = i; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bGetIndex = 1; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; current = buf[0]; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(bGetIndex == 0) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; current++; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(current&amp;lt;'A' || current&amp;gt;'Z')&amp;nbsp; &amp;nbsp; current = 'A'; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flag = current; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; index = 0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; //write --------------------------------------------------------------------- &lt;br /&gt;&amp;nbsp; &amp;nbsp; pos = 0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; memset(buf, 0x00, sizeof(buf)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; buf[pos++] = flag; &lt;br /&gt;&amp;nbsp; &amp;nbsp; memcpy(&amp;amp;buf[pos], data, len); &lt;br /&gt;&amp;nbsp; &amp;nbsp; pos += len; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; printf(&quot;LOG Index=[%c][%d]\n&quot;, flag, index+1); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; lseek(fd, index*(len+1), SEEK_SET); //+1=flag(X.1) &lt;br /&gt;&amp;nbsp; &amp;nbsp; write(fd, buf, pos); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; close(fd); &lt;br /&gt;&amp;nbsp; &amp;nbsp; sync(); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int&amp;nbsp;main(void) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; int select=0; &lt;br /&gt;&amp;nbsp; &amp;nbsp; struct timeval tv; &lt;br /&gt;&amp;nbsp; &amp;nbsp; time_t nowtime; &lt;br /&gt;&amp;nbsp; &amp;nbsp; struct tm *nowtm; &lt;br /&gt;&amp;nbsp; &amp;nbsp; char data[24]; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; while(1) &lt;br /&gt;&amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot;+++++ Write LOG Sample +++++\n&quot;); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot; 1=write LOG\n&quot;); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot; 5=Exit\n&quot;); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot;++++++++++++++++++++++++++++\n&quot;); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot;Menu Select&amp;gt;&amp;gt; :&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; scanf(&quot;%d&quot;, &amp;amp;select); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch(select) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1: &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gettimeofday(&amp;amp;tv, NULL); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nowtime = tv.tv_sec; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nowtm = localtime(&amp;amp;nowtime); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; memset(data, 0x00, sizeof(data)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; strftime(data, sizeof(data), &quot;%Y-%m-%d %H:%M:%S&quot;, nowtm);&amp;nbsp; &amp;nbsp; //(X.19)YYYY-MM-DD hh:mm:ss &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot;%s\n&quot;, data); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; memcpy(&amp;amp;data[strlen(data)], &quot;\x0d\x0a&quot;, 2);&amp;nbsp; &amp;nbsp; //X.21 &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write_log(data, 21); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default:&amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; } &lt;br /&gt;}&lt;/p&gt;</description>
      <category>c</category>
      <category>c 로그파일</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/45</guid>
      <comments>https://afewgood.tistory.com/45#entry45comment</comments>
      <pubDate>Tue, 7 Feb 2023 21:47:21 +0900</pubDate>
    </item>
    <item>
      <title>crontab를 이용한 특정시간에 shellscript 실행</title>
      <link>https://afewgood.tistory.com/44</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;#SETP_01.&amp;nbsp;crontab에서&amp;nbsp;실행할&amp;nbsp;script파일&amp;nbsp;생성 &lt;br /&gt;#data_backup.sh&amp;nbsp;=========================================== &lt;br /&gt;#!/bin/sh &lt;br /&gt;&lt;br /&gt;CURRENT_DATE=`date&amp;nbsp;+%Y_%m%d` &lt;br /&gt;tar&amp;nbsp;zcf&amp;nbsp;/home/afewgood/backup_${CURRENT_DATE}.tar.gz&amp;nbsp;/home/afewgood/data&lt;br /&gt;&lt;br /&gt;#find /home/afewgood/ -name &quot;backup_*.tar.gz&quot; -mtime +180&amp;nbsp; &amp;nbsp; #생성된지 180일(6개월)이 지난 파일 찾기 &lt;br /&gt;find /home/afewgood/&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;-name &quot;backup_*.tar.gz&quot; -mtime +180&lt;/span&gt; -exec rm -rf {} \;&amp;nbsp; &amp;nbsp; #rm명령으로 파일 삭제 &lt;br /&gt;#end&amp;nbsp;of&amp;nbsp;file&amp;nbsp;============================================== &lt;br /&gt;&lt;br /&gt;SETP_02&amp;nbsp;crontab&amp;nbsp;적용 &lt;br /&gt;#매달&amp;nbsp;말일&amp;nbsp;23:59에&amp;nbsp;스크립트&amp;nbsp;실행 &lt;br /&gt;&lt;br /&gt;#방법_01 /etc/crontab 파일을 직접 수정 (su권한) &lt;br /&gt;[root@afewgood&amp;nbsp;~]$&amp;nbsp;vi&amp;nbsp;/ect/crontab &lt;br /&gt;59 23 * * * [ $(date +\%d -d tomorrow) = 01 ] &amp;amp;&amp;amp; root /home/data_backup.sh &lt;br /&gt;&lt;br /&gt;#방법_02&amp;nbsp;crontab&amp;nbsp;-e&amp;nbsp;를&amp;nbsp;이용해서&amp;nbsp;crontab에&amp;nbsp;추가&amp;nbsp;(su권한&amp;nbsp;/&amp;nbsp;사용자&amp;nbsp;지정&amp;nbsp;없음)&lt;br /&gt;[root@afewgood ~]$ crontab -e&lt;br /&gt;59&amp;nbsp;23&amp;nbsp;*&amp;nbsp;*&amp;nbsp;*&amp;nbsp;[&amp;nbsp;$(date&amp;nbsp;+\%d&amp;nbsp;-d&amp;nbsp;tomorrow)&amp;nbsp;=&amp;nbsp;01&amp;nbsp;]&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;/home/data_backup.sh&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;※ crontab 작업목록확인&lt;br /&gt;[root@afewgood~]$ crontab -l&lt;br /&gt;&lt;br /&gt;※&amp;nbsp;arch&amp;nbsp;linux&amp;nbsp;crontab&amp;nbsp;설치&amp;nbsp;및&amp;nbsp;설정&amp;nbsp;순서 &lt;br /&gt;1.&amp;nbsp;crontab&amp;nbsp;설치 &lt;br /&gt;[root@afewgood&amp;nbsp;~]$&amp;nbsp;sudo&amp;nbsp;pacman&amp;nbsp;-S&amp;nbsp;cronie &lt;br /&gt;2.&amp;nbsp;실행 &lt;br /&gt;[root@afewgood&amp;nbsp;~]$&amp;nbsp;sudo&amp;nbsp;systemctl&amp;nbsp;enable&amp;nbsp;--now&amp;nbsp;cronie.service &lt;br /&gt;3.&amp;nbsp;shell&amp;nbsp;script&amp;nbsp;작성 &lt;br /&gt;4.&amp;nbsp;crontab&amp;nbsp;-e를&amp;nbsp;이용하여&amp;nbsp;crontab&amp;nbsp;명령&amp;nbsp;추가 &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.nemonein.xyz/2022/02/6424/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&amp;radic; 참고사이트 목록&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;https://velog.io/@khyup0629/shell-script-crontab-%EB%A7%A4%EB%8B%AC-%EB%A7%88%EC%A7%80%EB%A7%89-%EB%82%A0%EC%97%90-%EC%8B%A4%ED%96%89%EB%90%98%EB%8F%84%EB%A1%9D-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@khyup0629/shell-script-crontab-%EB%A7%A4%EB%8B%AC-%EB%A7%88%EC%A7%80%EB%A7%89-%EB%82%A0%EC%97%90-%EC%8B%A4%ED%96%89%EB%90%98%EB%8F%84%EB%A1%9D-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;a href=&quot;https://www.nemonein.xyz/2022/02/6424/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt; &lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;https://blog.desdelinux.net/ko/usar-crontab-en-archlinux-con-cronie/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.desdelinux.net/ko/usar-crontab-en-archlinux-con-cronie/&lt;/a&gt;&lt;a href=&quot;https://www.nemonein.xyz/2022/02/6424/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt; &lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;https://www.nemonein.xyz/2022/02/6424/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.nemonein.xyz/2022/02/6424/&lt;/a&gt;&lt;a href=&quot;https://www.nemonein.xyz/2022/02/6424/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt; &lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;https://jdm.kr/blog/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://jdm.kr/blog/2&lt;/a&gt;&lt;/p&gt;</description>
      <category>linux</category>
      <category>cronie</category>
      <category>crontab</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/44</guid>
      <comments>https://afewgood.tistory.com/44#entry44comment</comments>
      <pubDate>Mon, 21 Nov 2022 09:42:30 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 IP충돌 체크</title>
      <link>https://afewgood.tistory.com/43</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;int&amp;nbsp;ip_conflict_check(char&amp;nbsp;*device,&amp;nbsp;char&amp;nbsp;*ip) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; FILE *fp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; char cmd[64], buf[128]; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; memset(cmd, 0x00, sizeof(cmd)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; sprintf(cmd, &quot;arping -q -D -I %s -c 1 %s; echo $?&quot;, device, ip); &lt;br /&gt;&amp;nbsp; &amp;nbsp; if((fp=popen(cmd, &quot;r&quot;)) == NULL) &lt;br /&gt;&amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; perror(&quot;popen() Fail&quot;); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1; &lt;br /&gt;&amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; memset(buf, 0x00, sizeof(buf)); &lt;br /&gt;&amp;nbsp; &amp;nbsp; while(1) &lt;br /&gt;&amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(fgets(buf, sizeof(buf), fp) == NULL) break; &lt;br /&gt;&amp;nbsp; &amp;nbsp; } &lt;br /&gt;&amp;nbsp; &amp;nbsp; pclose(fp); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; return buf[0]-0x30; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;int&amp;nbsp;main(void) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; char *device=&quot;eth0&quot;; //&quot;wlan0&quot; //Network (Ethernet or WiFi) Interface Device &lt;br /&gt;&amp;nbsp; &amp;nbsp; char *ip=&quot;192.168.0.254&quot;; //체크하고자 하는 IP &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; ip_conflict_check(device, ip); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>c</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/43</guid>
      <comments>https://afewgood.tistory.com/43#entry43comment</comments>
      <pubDate>Thu, 8 Sep 2022 09:21:31 +0900</pubDate>
    </item>
    <item>
      <title>script를 이용한 IP충돌 체크</title>
      <link>https://afewgood.tistory.com/42</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;//ip_conflict_check.sh &lt;br /&gt;Start&amp;nbsp;======================================== &lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;#!/bin/sh &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;#arping&amp;nbsp;-q&amp;nbsp;-D&amp;nbsp;-I&amp;nbsp;DEVICE&amp;nbsp;-c&amp;nbsp;COUNT&amp;nbsp;IP_ADDRESS;&amp;nbsp;echo&amp;nbsp;$? &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;#ex)&amp;nbsp;arping&amp;nbsp;-q&amp;nbsp;-D&amp;nbsp;-I&amp;nbsp;eth0&amp;nbsp;-c&amp;nbsp;1&amp;nbsp;192.168.0.181;&amp;nbsp;echo&amp;nbsp;$? &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;#리턴값이&amp;nbsp;1&amp;nbsp;이면&amp;nbsp;이미&amp;nbsp;네트워크상에&amp;nbsp;IP가&amp;nbsp;존재&amp;nbsp;/&amp;nbsp;0&amp;nbsp;이면&amp;nbsp;중복&amp;nbsp;IP&amp;nbsp;없음 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;out=&quot;ip_check_ret.txt&quot; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;touch&amp;nbsp;&quot;$out&quot; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;arping -q -D -I eth0 -c 1 &quot;$1&quot; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;ret=$? &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;echo&amp;nbsp;&quot;$ret&quot;&amp;nbsp;&amp;gt;&amp;nbsp;&quot;$out&quot;&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;End&amp;nbsp;========================================== &lt;br /&gt;&lt;br /&gt;실행방법 &lt;br /&gt;[root@afewgood&amp;nbsp;/home&amp;nbsp;~]$&amp;nbsp;./ip_conflict_check.sh&amp;nbsp;192.168.0.254 &lt;br /&gt;[root@afewgood&amp;nbsp;/home&amp;nbsp;~]$&amp;nbsp;&amp;nbsp;cat&amp;nbsp;ip_check_ret.txt &lt;br /&gt;1&amp;nbsp; &amp;nbsp; //IP 존재함&lt;br /&gt;[root@afewgood&amp;nbsp;/home&amp;nbsp;~]$&amp;nbsp;&lt;/p&gt;</description>
      <category>linux</category>
      <category>script를 이용한 IP충돌 체크</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/42</guid>
      <comments>https://afewgood.tistory.com/42#entry42comment</comments>
      <pubDate>Thu, 8 Sep 2022 09:03:49 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 정규식을 이용한 IP / Email 주소 체크</title>
      <link>https://afewgood.tistory.com/41</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;#include&amp;nbsp;&amp;lt;regex.h&amp;gt; &lt;br /&gt;int&amp;nbsp;Check_IP_Addr(char&amp;nbsp;*addr) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; regex_t state; &lt;br /&gt;&amp;nbsp; &amp;nbsp; const char *pattern=&quot;^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$&quot;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; regcomp(&amp;amp;state, pattern, REG_EXTENDED); &lt;br /&gt;&amp;nbsp; &amp;nbsp; //0=success else=fail &lt;br /&gt;&amp;nbsp; &amp;nbsp; return regexec(&amp;amp;state, addr, 0, NULL, 0); &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;int&amp;nbsp;Check_Email_Addr(char&amp;nbsp;*addr) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; regex_t state; &lt;br /&gt;&amp;nbsp; &amp;nbsp; const char *pattern=&quot;^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$&quot;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; regcomp(&amp;amp;state, pattern, REG_EXTENDED); &lt;br /&gt;&amp;nbsp; &amp;nbsp; //0=success else=fail &lt;br /&gt;&amp;nbsp; &amp;nbsp; return regexec(&amp;amp;state, addr, 0, NULL, 0); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int&amp;nbsp;main(void) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp; int i, ret; &lt;br /&gt;&amp;nbsp; &amp;nbsp; char *ip[]={&quot;192.168.0.24&quot;, &quot;192.168.0.753&quot;, &quot;192.168.0.1&quot;}; &lt;br /&gt;&amp;nbsp; &amp;nbsp; char *email[]={&quot;afewgood@afewgood.net&quot;, &quot;example@test.com&quot;, &quot;nonmail&quot;}; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; for(i=0; i&amp;lt;3; i++) &lt;br /&gt;&amp;nbsp; &amp;nbsp; { &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ret = Check_IP_Addr(ip[i]); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(ret != 0)&amp;nbsp; &amp;nbsp; printf(&quot;[%d] Incorrect IP address\n&quot;, i); &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ret = Check_Email_Addr(email[i]); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(ret != 0)&amp;nbsp; &amp;nbsp; printf(&quot;[%d] Incorrect Email Address\n&quot;, i); &lt;br /&gt;&amp;nbsp; &amp;nbsp; } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;결과&lt;br /&gt;[1]&amp;nbsp;Incorrect&amp;nbsp;IP&amp;nbsp;address &lt;br /&gt;[2]&amp;nbsp;Incorrect&amp;nbsp;Email&amp;nbsp;Address&lt;/p&gt;</description>
      <category>c</category>
      <category>regexec</category>
      <category>정규식</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/41</guid>
      <comments>https://afewgood.tistory.com/41#entry41comment</comments>
      <pubDate>Tue, 6 Sep 2022 10:00:27 +0900</pubDate>
    </item>
    <item>
      <title>구조체 배열 인자로 넘겨서 채우기</title>
      <link>https://afewgood.tistory.com/40</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;typedef&amp;nbsp;struct&amp;nbsp;_tagTestStruct&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;x; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;y; &lt;br /&gt;}&amp;nbsp;testStruct; &lt;br /&gt;&lt;br /&gt;void&amp;nbsp;AddStructure(testStruct&amp;nbsp;structArray[],&amp;nbsp;int&amp;nbsp;*count) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testStruct&amp;nbsp;sample; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;memset(&amp;amp;sample,&amp;nbsp;0x00,&amp;nbsp;sizeof(testStruct)); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sample.x&amp;nbsp;=&amp;nbsp;5; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sample.y&amp;nbsp;=&amp;nbsp;50; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(&amp;amp;structArray[*count],&amp;nbsp;&amp;amp;sample,&amp;nbsp;sizeof(testStruct)); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(*count)++; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;int&amp;nbsp;main(void) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;cnt=0,&amp;nbsp;i; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testStruct&amp;nbsp;structArr[4]; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;memset(&amp;amp;structArr,&amp;nbsp;0x00,&amp;nbsp;sizeof(structArr)); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(cnt=0;&amp;nbsp;cnt&amp;lt;2;&amp;nbsp;cnt++) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;structArr[cnt].x&amp;nbsp;=&amp;nbsp;cnt+1; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;structArr[cnt].y&amp;nbsp;=&amp;nbsp;cnt+10; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddStructure(structArr,&amp;nbsp;&amp;amp;cnt); &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(i=0;&amp;nbsp;i&amp;lt;cnt;&amp;nbsp;i++) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(&quot;structArr[%d]&amp;nbsp;x=[%2d]&amp;nbsp;y=[%2d]\n&quot;,&amp;nbsp;i,&amp;nbsp;structArr[i].x,&amp;nbsp;structArr[i].y); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/p&gt;</description>
      <category>c</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/40</guid>
      <comments>https://afewgood.tistory.com/40#entry40comment</comments>
      <pubDate>Thu, 11 Aug 2022 19:46:16 +0900</pubDate>
    </item>
    <item>
      <title>teraterm에서 sz/rz 사용법</title>
      <link>https://afewgood.tistory.com/39</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. rz&lt;br /&gt;HOST(PC) &amp;rarr; Target으로 파일 전송하는 경우 사용 &lt;br /&gt;rz&amp;para; &lt;br /&gt;File &amp;rarr; Transfer &amp;rarr; ZMODEM &amp;rarr; Send &amp;rarr; 파일선택 후 열기 클릭&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;sz&amp;nbsp;Target&amp;nbsp;&amp;rarr;&amp;nbsp;HOST(PC)로&amp;nbsp;파일&amp;nbsp;전송하는&amp;nbsp;경우&amp;nbsp;사용 &lt;br /&gt;sz 파일명&amp;para; &lt;br /&gt;File &amp;rarr; Transfer &amp;rarr; ZMODEM &amp;rarr; Receive 선택 &lt;br /&gt;C:\Users\계정명\AppData\Local\VirtualStore\Program Files (x86)\teraterm\ 파일 저장됨 (Windows10기준)&lt;/p&gt;</description>
      <category>etc</category>
      <author>afewgood</author>
      <guid isPermaLink="true">https://afewgood.tistory.com/39</guid>
      <comments>https://afewgood.tistory.com/39#entry39comment</comments>
      <pubDate>Mon, 4 Jul 2022 10:31:56 +0900</pubDate>
    </item>
  </channel>
</rss>