<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://wiki.lang.idv.tw/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://wiki.lang.idv.tw/feed.php">
        <title>MasterDragon - program:c</title>
        <description></description>
        <link>http://wiki.lang.idv.tw/</link>
        <image rdf:resource="http://wiki.lang.idv.tw/_media/wiki/dokuwiki.svg" />
       <dc:date>2026-06-05T19:23:03+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/%E7%94%A8gcc_%E8%87%AA%E8%A3%BD_library?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/cgi_-_%E8%AA%AA%E6%98%8E?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/cgi_-_file_upload?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/cgi_-_libraries?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/how_do_i_make_my_program_watch_for_file_modification_in_c?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/linux_%E7%9A%84_.a_.so_.la_%E5%87%BD%E5%BC%8F%E5%BA%AB%E7%9A%84%E5%B7%AE%E7%95%B0?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/linux%E7%B7%A8%E7%A8%8B%E7%8D%B2%E5%8F%96%E6%9C%AC%E6%A9%9Fip%E5%9C%B0%E5%9D%80_sample?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/linux%E7%B7%A8%E7%A8%8B%E7%8D%B2%E5%8F%96%E6%9C%AC%E6%A9%9Fip%E5%9C%B0%E5%9D%80?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/makefile%E8%AA%9E%E6%B3%95%E7%B0%A1%E4%BB%8B?rev=1573891964&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.lang.idv.tw/program/c/socket_udp_%E8%A9%B3%E8%A7%A3?rev=1573891964&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.lang.idv.tw/_media/wiki/dokuwiki.svg">
        <title>MasterDragon</title>
        <link>http://wiki.lang.idv.tw/</link>
        <url>http://wiki.lang.idv.tw/_media/wiki/dokuwiki.svg</url>
    </image>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/%E7%94%A8gcc_%E8%87%AA%E8%A3%BD_library?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>用gcc_自製_library</title>
        <link>http://wiki.lang.idv.tw/program/c/%E7%94%A8gcc_%E8%87%AA%E8%A3%BD_library?rev=1573891964&amp;do=diff</link>
        <description>用gcc 自製 Library

&lt;http://www.wretch.cc/blog/awaysu/25074587&gt;

Library可分成三種，static、shared與dynamically loaded。 

1. Static libraries

Static 程式庫用於靜態連結，簡單講是把一堆object檔用ar(archiver)包裝集合起來，檔名以 `.a&#039; 結尾。優點是執行效能通常會比後兩者快，而且因為是靜態連結，所以不易發生執行時找不到library或版本錯置而無法執行的問題。缺點則是檔案較大，維護度較低；例如library如果發現bug需要更新，那麼就必須重新連結執行檔。…</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/cgi_-_%E8%AA%AA%E6%98%8E?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cgi_-_說明</title>
        <link>http://wiki.lang.idv.tw/program/c/cgi_-_%E8%AA%AA%E6%98%8E?rev=1573891964&amp;do=diff</link>
        <description>查看所有環境變數


int main(int argc, char* argv[], char *envp[]) {

  int x;
  for (x = 0; envp[x] != NULL; ++x) {
    printf(envp[x]);
    printf(&quot;&lt;br&gt;\n&quot;);
  }
  
}


結果:


HTTP_HOST=192.168.100.208
HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE=zh-tw,zh;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_ACCEPT_ENCODING=gzip, deflate
HTTP_REFERER=http://192.168.100.20/uploadFile.htm
HTTP_C…</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/cgi_-_file_upload?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cgi_-_file_upload</title>
        <link>http://wiki.lang.idv.tw/program/c/cgi_-_file_upload?rev=1573891964&amp;do=diff</link>
        <description>用c语言写cgi程序（3）---实现文件上传

分类： 嵌入式网络 2010-03-09 11:11 1942人阅读 评论(2) 收藏 举报

敬告：其实当前的cgic版本已经有上传的功能了，可以看看自带的test文件

用C语言编写cgi程序的话，多半会用到CGIC。 这是个非常流行的库，遇到文件上传之类的应用更是离不开它。官方页面及下载地址为：</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/cgi_-_libraries?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cgi_-_libraries</title>
        <link>http://wiki.lang.idv.tw/program/c/cgi_-_libraries?rev=1573891964&amp;do=diff</link>
        <description>&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”&gt;
&lt;title&gt;Comparison of CGI libraries in C&lt;/title&gt;
&lt;script type=“text/javascript”&gt;
window.google_analytics_uacct = “UA-11731688-3”;
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/how_do_i_make_my_program_watch_for_file_modification_in_c?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>how_do_i_make_my_program_watch_for_file_modification_in_c</title>
        <link>http://wiki.lang.idv.tw/program/c/how_do_i_make_my_program_watch_for_file_modification_in_c?rev=1573891964&amp;do=diff</link>
        <description>How do I make my program watch for file modification in C++?

&lt;http://stackoverflow.com/questions/931093/how-do-i-make-my-program-watch-for-file-modification-in-c&gt;

There are several ways to do this depending on the platform. I would choose from the following choices:

Cross Platform

Trolltech&#039;s Qt has an object called QFileSystemWatcher which allows you to monitor files and directories. I&#039;m sure there are other cross platform frameworks that give you this sort of capability too, but this one w…</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/linux_%E7%9A%84_.a_.so_.la_%E5%87%BD%E5%BC%8F%E5%BA%AB%E7%9A%84%E5%B7%AE%E7%95%B0?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux_的_.a_.so_.la_函式庫的差異</title>
        <link>http://wiki.lang.idv.tw/program/c/linux_%E7%9A%84_.a_.so_.la_%E5%87%BD%E5%BC%8F%E5%BA%AB%E7%9A%84%E5%B7%AE%E7%95%B0?rev=1573891964&amp;do=diff</link>
        <description>Linux 的 .a / .so / .la 函式庫的差異

來源:&lt;http://blog.longwin.com.tw/2013/03/linux-a-so-la-library-diff-2013/&gt;

Linux 的 *.a / .so / .la 在下述位置可以參考看看(Debian):

(沒有在路徑內的應該是沒裝此 Library)
/usr/lib/x86_64-linux-gnu/ 有 *.a, *.so
/usr/lib/x86_64-linux-gnu/ImageMagick-6.7.7/modules-Q16/coders/ 有 *.la
/lib/modules/3.2.0-4-amd64/kernel/net/wireless/*.ko</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/linux%E7%B7%A8%E7%A8%8B%E7%8D%B2%E5%8F%96%E6%9C%AC%E6%A9%9Fip%E5%9C%B0%E5%9D%80_sample?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux編程獲取本機ip地址_sample</title>
        <link>http://wiki.lang.idv.tw/program/c/linux%E7%B7%A8%E7%A8%8B%E7%8D%B2%E5%8F%96%E6%9C%AC%E6%A9%9Fip%E5%9C%B0%E5%9D%80_sample?rev=1573891964&amp;do=diff</link>
        <description>顯示本機所有網卡的IP address, netmask, broadcast


#include &lt;stdio.h&gt;      
#include &lt;sys/types.h&gt;
#include &lt;ifaddrs.h&gt;
#include &lt;netinet/in.h&gt; 
#include &lt;string.h&gt; 
#include &lt;arpa/inet.h&gt;

int main (int argc, const char * argv[]) {
	struct ifaddrs * ifAddrStruct=NULL;
	void * tmpAddrPtr=NULL;

	getifaddrs(&amp;ifAddrStruct);

	while (ifAddrStruct!=NULL) {
		if (ifAddrStruct-&gt;ifa_addr-&gt;sa_family==AF_INET) { // check it is IP4

			// is a valid IP4 Address
			tmpAddrPtr=&amp;((struct sockaddr_in *)ifAddrStruct-&gt;i…</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/linux%E7%B7%A8%E7%A8%8B%E7%8D%B2%E5%8F%96%E6%9C%AC%E6%A9%9Fip%E5%9C%B0%E5%9D%80?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux編程獲取本機ip地址</title>
        <link>http://wiki.lang.idv.tw/program/c/linux%E7%B7%A8%E7%A8%8B%E7%8D%B2%E5%8F%96%E6%9C%AC%E6%A9%9Fip%E5%9C%B0%E5%9D%80?rev=1573891964&amp;do=diff</link>
        <description>﻿

linux編程獲取本機ip地址

使用getifaddrs()和struct ifaddrs的使用，獲取本機IP

ifaddrs結構體定義如下：


struct ifaddrs   
{   
    struct ifaddrs  *ifa_next;    /* Next item in list */   
    char            *ifa_name;    /* Name of interface */   
    unsigned int     ifa_flags;   /* Flags from SIOCGIFFLAGS */   
    struct sockaddr *ifa_addr;    /* Address of interface */   
    struct sockaddr *ifa_netmask; /* Netmask of interface */   
    union   
    {   
        struct sockaddr *ifu_broadaddr; /* Broadcast addres…</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/makefile%E8%AA%9E%E6%B3%95%E7%B0%A1%E4%BB%8B?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>makefile語法簡介</title>
        <link>http://wiki.lang.idv.tw/program/c/makefile%E8%AA%9E%E6%B3%95%E7%B0%A1%E4%BB%8B?rev=1573891964&amp;do=diff</link>
        <description>Makefile 語法簡介

來源:&lt;http://tetralet.luna.com.tw/?op=ViewArticle&amp;articleId=185&gt;

Makefile 語法：

以下為 Makefile 的基本語法：

註解：
以 # 開頭的即為註解。
變數宣告：（有人稱之為巨集）

語法：


  MACRO = value


變數名稱為大小寫相異。在慣例上，Makefile 內部使用的變數名稱使用</description>
    </item>
    <item rdf:about="http://wiki.lang.idv.tw/program/c/socket_udp_%E8%A9%B3%E8%A7%A3?rev=1573891964&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T08:12:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>socket_udp_詳解</title>
        <link>http://wiki.lang.idv.tw/program/c/socket_udp_%E8%A9%B3%E8%A7%A3?rev=1573891964&amp;do=diff</link>
        <description>Socket UDP 詳解

和TCP套接字一樣，UDP套接字也通過socket( )函數創建，不同的是UDP套接字可以通過一個套接字描述符在不同的主機之間發送和接
收報文。

創建UDP客戶端的典型過程為：首先調用socket( )函數，接下來定義發送和接收數據的遠程主機和端口，然後將套接字傳遞給
connect( )函數。套接字描述符在後面會用於發送和接收數據。除此之外，發送數據的目標主機和端口可以在數據「寫入」時指定，
這樣就可以用一個套接字發送數據到多個主機。…</description>
    </item>
</rdf:RDF>
