2011年11月30日 星期三

Linux 基本指令介紹

最近開始在摸Linux
學習Android系統的第一步,就是先將Linux摸熟
所以今天來介紹一些基本的指令

基本指令:
$cd test          :到"test"這層資料夾下
$ls                  :列表出目前資料夾內的檔案
$mkdir test     :建立名稱為"test"的資料夾
$rm test          :刪除"test"這個檔案(若為資料夾必須要是空的)
$rm -fdr test   :不管"test"是不是空的都刪除
$cp a.log /tmp:將a.log複製到tmp目錄下
$mv a.log /tmp:將a.log搬到tmp目錄下

壓縮、解壓縮
$tar zcvf test.tar.gz .:壓縮現在資料夾內的檔案,並存成test.tar.gz (在此目錄下)
$tar zxvf test.tar.gz .:將test.tar.gz解壓縮在現在的目錄下
$zip test.zip .           :壓縮現在資料夾內的檔案,並存成test.zip (在此目錄下)
$unzip test.zip          :將test.zip解壓縮在現在的目錄下

更改權限(Linux的檔案權限較嚴謹,所以常常問題會出在這!):
在這個主題前要先講一個觀念:
當下了$ls -al之後會將檔案的詳細資訊都列出來:
-rwxrw-r-- 1 edward   root   321   Nov 20 22:30   test.log
       ↑  連結數  ↑       群組    ↑      修改時間            ↑
讀取權限   擁有者       檔案大小(bytes)             檔名

其中讀取權限解讀如下:
-   rwx   r-x    r--         0:檔案的形式
0  123  456   789    123:擁有者的權限(範例為可讀、可寫、可執行)
                               456:同群組的權限(範例為可讀、不可寫、可執行)
                               789:其他人的權限(範例為可讀、不可寫、不可執行)
而在設定權限時,三個數為一組,用二進制去算數字來設定。
相關指令解說:
$sudo <命令>  :使用系統管理者(root)的權限去下指令
$chown system test.log :將test.log的擁有者改為system
$chmod 777 test.log    :將test.log的使用權限通通打開(皆為可讀、可寫、可執行,即-rwxrwxrwx)
$chmod a+x test.log     :將所有人設定為皆可執行test.log
$chmod a-w test.log     :將所有人設定為不可寫test.log

目前較常用的指令就這些,之後有再用到更多的指令再來補充!

參考網站:
鳥哥的Linux私房菜:http://linux.vbird.org/
凍仁的ubuntu筆記:http://jonny.ubuntu-tw.net/
Ubuntu正體中文站:http://www.ubuntu-tw.org/

2011年11月21日 星期一

引用C DLL的方法


第一篇文章,來寫些比較容易的東西好了。
這篇文章是要介紹各種程式語言(Visual C,VB6,Visual C#)Import C DLL時的方法

先假設我們的DLL是使用Visual C所建立出來的,所包含的檔案如下:
l   TestDll.dll
l   TestDll.lib
並且DLL內包含一個Function
int addfunc(int x,int y)
{
        return x + y;
}

Visual C的引用方法:
1、TestDLL.dll以及TestDll.lib複製到與原始碼相同的資料夾
2、Visual Studio專案中,選擇加入現有項目,並將TestDll.lib加入
完成以上項目之後,再來我們看範例程式碼(省略include部分):
extern “c” __declspec(dllexport) int addfunc(int x, int y);

int main()
{
    int x = 1;  int y = 2;
    printf(“%d\n”, addfunc( x, y));
    return 0;
}

VB6的引用方法
1、TestDll.dll複製到與原始碼(或執行檔)相同的資料夾
2、建立一個模組(Module),並且加入以下程式:
Declare Function addfunc Lib “TestDll.dll” (ByVal x As Long, ByVal y As Long) As Long
3、再來看範例程式碼:
Private Sub Command1_Click()
    Dim z As Long
    z = addfunc(1 ,2)
    Label1.Caption = z
End Sub

Visual C#的引用方法
1、TestDll.dll放至與執行檔相同的資料夾(預設為\bin\Debug\
2、再來看範例程式碼:
using System.Runtime.InteropServices;

[DllImoprt(@”TestDll.dll”, EntryPoint = “addfunc”)]
public static extern int addfunc(int x, int y);

int main()
{
        int x = 1, y = 2,z;
        z = addfunc(x, y);
        return 0;
}

如此就可以呼叫DLL中的函式了!

新網誌開張!

大家好!我是小耕
這裡是我用來記錄我所學習到的任何東西
包含工作上學到的、平常學到的、看書領悟的東西
放上來公開與大家分享
希望能夠幫助到有需要的人!
若您對我的文章有興趣想要轉貼,歡迎轉貼,著名原出處就好了!
謝謝!