Linux系統共享庫程式設計

2021-05-22 21:29:18 字數 946 閱讀 8013

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...