The extended 8-byte file creation functions are the same as their 4-byte counterparts except that a parameter has been added: a pointer to the XCREblk structure, or an array of XCREblk structures, defined in Extended File Creation Block Structure. For example, look at the 4-byte create data file extended function below:
COUNT CreateDataFileXtd(FILNO datno, pTEXT filnam,
UCOUNT datlen, UCOUNT xtdsiz, COUNT filmod,
LONG permmask, pTEXT groupid, pTEXT fileword)
The above example then becomes the extended 8-byte create data file function below:
COUNT CreateDataFileXtd8(FILNO datno, pTEXT filnam,
UCOUNT datlen, UCOUNT xtdsiz, COUNT filmod,
LONG permmask, pTEXT groupid, pTEXT fileword,
pXCREblk pxcreblk)
pxcreblk points to a single XCREblk structure, defined later in this chapter.
A create function referencing more than one file, such as CreateIFileXtd(), is modified in the same manner, except the pxcreblk parameter points to an array of XCREblk structures, one for each physical file referenced by the function. For example, look at the code below:
COUNT CreateIFileXtd(pIFIL ifilptr, pTEXT dataextn,
pTEXT indxextn, LONG permmask, pTEXT groupid,
pTEXT fileword)
The above code becomes the code below:
COUNT CreateIFileXtd8(pIFIL ifilptr, pTEXT dataextn,
pTEXT indxextn, LONG permmask, pTEXT groupid,
pTEXT fileword, pXCREblk pxcreblk)
If the IFIL structure pointed to by ifilptr describes a data file with 10 indexes, but the indexes are contained in two physical index files, pxcreblk must point to an array of three XCREblk structures, one for each physical file. If any of these files do not require the extended features, the corresponding XCREblk structure is zero filled.
The complete list of file creation functions includes: CreateDataFileXtd8(), CreateIFileXtd8(), CreateIndexFileXtd8(), PermIIndex8(), RebuildIFileXtd8(), and TempIIndexXtd8(). These functions are detailed in c-tree Function Descriptions.