1、
類似windows系統中的動態鏈結庫,linux中也有相應的共享庫用以支援**的復用。windows中為*.dll,而linux中為*.so。下 面詳細介紹如何建立、使用linux的共享庫。
2、建立共享庫
//sayhello.c
#include
int sayhello( void )
void saysomething(char * str)
用下面的命令可以生成共享庫
gcc -fpic -shared sayhello.c -o libsay.so
解釋:-f
後面跟一些編譯選項,pic
是 其中一種,表示生成位置無關**(position independent code)。
3、使用共享庫
//say.c
#include
#include
#include
int main(int argc,char *argv)
sayhello = dlsym(handle,"sayhello");
if(error = dlerror())
saysomething = dlsym(handle,"saysomething");
if(error = dlerror())
sayhello();
saysomething("this is something");
dlclose(handle);
return 0;
}編譯上述原始檔使用的命令為:gcc say.c -ldl -o say 其中選項-ldl表示生成的模組需要引用共享庫。若未加該選項將會出現「undefined reference to dlopen」等這樣的錯誤
Linux系統共享庫程式設計
一 說明 類似windows系統中的動態鏈結庫,linux中也有相應的共享庫用以支援 的復用。windows中為 dll,而linux中為 so。下面詳細介紹如何建立 使用linux的共享庫。二 建立共享庫 在mytestso.c檔案中,如下 include include int getmax i...
Ceph 檔案系統共享
塊共享相當於直接提供磁碟,這個磁碟是沒有格式化過的。檔案系統共享相當於提供格式化過的磁碟。檔案系統主要由兩部分組成 1 inode 記錄檔案的描述資訊,128位元組 2 block 用於儲存資料,4k 目前乙個ceph集群只能提供乙個檔案系統的共享。開始配置 1 新增一台新的主機 ip 192.16...
NFS網路檔案系統共享日誌
最近搞了個日誌收集 server,但是遇到了幾個問題 1 收集log的server上面有空間,卻不讓安裝ftp nginx及其他可提供訪問的服務 2 可提供服務的server又沒有磁碟空間 3 用什麼提供日誌訪問,ftp?nginx?還是其他共享?那這時候就想到了nfs網路檔案系統,在log ser...