Product Documentation

FairCom ISAM for C

Previous Topic

Next Topic

ctMBprefix

Stores a proper prefix to a Unicode filename string.

Short Name

ctMBprefix()

Type

Utility

Declaration

NINT ctMBprefix(pTEXT dp, NINT FnType)

Description

FairCom DB requires that the Unicode file name have a special 8-byte prefix that informs FairCom DB about special file name encoding. ctMBprefix() stores a proper prefix at dp of type FnType.

dp is a pTEXT because the name may be encoded as a byte stream or a wide character array and ctMBprefix() does not assume that dp is aligned when used with UTF16.

FnType may be ctFnTypeUTF8 or ctFnTypeUTF16. Both of these constants are defined in ctport.h. ctFnPrefixSIZE holds the size of the prefix in bytes.

Return

Value

Symbolic Constant

Explanation

0

NO_ERROR

Prefix stored.

446

BMOD_ERR

FnType parameter is bad.

See FairCom DB Error Codes for a complete listing of valid FairCom DB error values.

Example

/* In the following example, getUnicodeUTF8string is assumed to be a routine

which will fill-in a UTF8 encoded string up to a max length.

GetUnicodeUTF16string performs in the same manner except that it works with

16-bit wide characters.

*/


FILNO datno8, datno16;

WCHAR utf16name[256];

TEXT utf8name[512];


ctMBprefix(utf8name,ctFnTypeUTF8);

getUnicodeUTF8string(utf8name + ctFnPrefixSIZE,512 - ctFnPrefixSIZE);

datno8 = OPNRFIL(-1,utf8name,SHARED);


ctMBprefix((pTEXT) utf16name,ctFnTypeUTF16);

getUnicodeUTF16string(utf16name + ctFnPrefixSIZE / 2,

256 - ctFnPrefixSIZE / 2);

datno16 = OPNRFIL(-1,utf16name,SHARED);

TOCIndex