Example #1
0
static bool initialiseProgramDataDir(wchar_t *path, size_t pathLen)
{
	PWSTR programData;
	if (SUCCEEDED(SHGetKnownFolderPath(FOLDERID_ProgramData, 0, NULL, &programData))) {
		wcscpy_s(path, pathLen, programData);
		CoTaskMemFree(programData);
		if (initialiseDir(path, HSP_PUBLISHER)) {
			return initialiseDir(path, HSP_PRODUCT_NAME);
		}
	}
	return false;
}
int main(){
        int fileSize=0, i=0;

        /** initialise whole memory as free **/
        FreeMap.totalFreeCount=MAX_BLOCK_COUNT;
        for(i=0; i<MAX_BLOCK_COUNT; i++){
                FreeMap.isFree[i]=FREE;
        }

        /** create file of mentione size **/
        fileSize=createFile("newFile.txt");
        if(fileSize==0){
                return 1;
        }

        /** read file and store in memory back store **/
        struct IndexNode *fileIndex = loadFileInMemory("newFile.txt", fileSize);

        if(fileIndex==NULL){
                return 1;
        }

        /** read file from memory and print **/
        readAndPrint(fileIndex);

        /** initialise root directory **/
        initialiseDir(&root, ROOT);

        /** initialise inode-table **/
        for(i=0; i<MAX_FILE_SUPPORTED; i++)
        {
                inodeTable[MAX_FILE_SUPPORTED].inode=NULL;
                inodeTable[MAX_FILE_SUPPORTED].inode_no=-1;
        }

        /** map file to directory and inode **/
        if(mapFileToInodeTable(fileIndex, ROOT)==1)
                return 1;

        return 0;
}