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筆記(1) 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。有了上面的認...
ACE操作配置檔案
配置檔案操作相關類 1 ace configuration heap 它可以用在幾乎所有的平台上,在記憶體中儲存所有配置資訊.可以對記憶體的分配進行定製,使用持久的後備儲存,但是最常用的是動態分配的堆記憶體,所以這個類的名字裡面含有乙個heap 2 ace configuration win32re...