ace裡的檔案操作與平常的win32裡面的檔案操作有所不同,這是因為ace是為網路開發而設計的,裡面普遍都遵循了client/server模式,這樣在操作檔案時,ace把檔案看做是乙個socket伺服器,而進行檔案操作的類(ace_file_io)被看做是乙個socket client。
有了上面的認識,使用ace的檔案操作就容易理解了:
呼叫ace_file_io.send(...)其實就是進行寫檔案的操作;
呼叫ace_file_io.recv(...)其實就是進行檔案的讀操作。
ace裡面的檔案操作類主要包括:ace_io_sap、ace_file、ace_file_io、ace_file_connector。
ace_file_connector是乙個用來產生ace_file_io的類工廠。
ace_file_io繼承於ace_file,ace_file繼承於ace_io_sap。
ace_file只能夠對檔案進行一些整體性的操作,如:關閉檔案(close)、刪除檔案(remove/ulink)、獲取檔案屬性(get_info)、設定檔案大小(truncate)、定位或獲取檔案游標位置(seek/position/tell)、獲取檔案路徑(get_local_addr/get_remote_addr)。
ace_file_io則能夠進行檔案的讀寫操作,如:多個版本的send/recv, send_n/recv_n, sendv/recvv, sendv_n/recvv_n
ace_file_connector實際是為了使ace_file類族能夠符合connector/acceptor設計模式而設計的,只是沒有相應的acceptor。
示例**如下:
#include "ace/os_main.h"
#include "ace/file_addr.h"
#include "ace/file_connector.h"
#include "ace/file_io.h"
#include "ace/os_ns_string.h"
#include "ace/os_ns_stdio.h"
ace_rcsid(file_sap, client, "client.cpp,v 4.16 2003/11/01 11:15:23 dhinton exp")
intace_tmain (int argc, ace_tchar *argv)
else
}if (cli_file.recv (readback, len) != len)
ace_error_return ((lm_error,
"%p/n",
"recv"),
1);ace_os::printf ("read back :%s/n",
ace_text_always_char(readback));
if (cli_file.close () == -1 || file_copy.close() == -1)
ace_error_return ((lm_error,
"%p/n",
"close"),
1);return 0;
}除了上面提供的基本檔案操作類外,ace還提供了對配置檔案進行操作的類,如對ini檔案進行操作,當然也可以對xml檔案進行操作
對int檔案進行操作的相關類如下:
ace_configuration_heap 用於獲得配置檔案的資訊
ace_ini_impexp 用於匯入配置檔案資訊
ace_configuration_section_key 用於定位配置檔案的章節
示例如下:
cinifile.h 檔案
#ifndef cinifile
#define cinifile
#include "ace/configuration.h"
#include "ace/configuration_import_export.h"
class cinifile
;#endif
cinifile.cpp 檔案
#include "cinifile.h"
cinifile::~cinifile()
int cinifile::open(const ace_tchar * filename)
if (config.open_section(config.root_section(),ace_text("crb"),0,this->root_key_)==-1)
return 0;
}int cinifile::getkeyvalue(const ace_tchar * name,ace_tstring &value)
ACE網路程式設計筆記(1) ACE自適配通訊環境
介紹 好處增強可移植性 在ace元件的幫助下,很容易在一種os平台上編寫併發網路應用,然後快速地將它們移植到各種其他的os平台上。而且,因為ace是開放原始碼的自由軟體,你無需擔心被鎖定在特定的作業系統平台或編譯器上。更好的軟體質量 ace的設計使用了許多可提高軟體質量的關鍵模式,這些質量因素包括通...
ACE檔案操作
ace裡的檔案操作與平常的win32裡面的檔案操作有所不同,這是因為ace是為網路開發而設計的,裡面普遍都遵循了client server模式,這樣在操作檔案時,ace把檔案看做是乙個socket伺服器,而進行檔案操作的類 ace file io 被看做是乙個socket client。有了上面的認...
ACE裡的檔案操作
ace裡的檔案操作與平常的win32裡面的檔案操作有所不同,這是因為ace是為網路開發而設計的,裡面普遍都遵循了client server模式,這樣在操作檔案時,ace把檔案看做是乙個socket伺服器,而進行檔案操作的類 ace file io 被看做是乙個socket client。有了上面的認...