ACE筆記(1) ACE檔案操作

2021-08-22 10:56:09 字數 2279 閱讀 3199

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。有了上面的認...