Pages

Wednesday, September 12, 2012

C++ CODE Set File Attributes to Read or Write

Include following header files

#include <stdio.h>
#include <tchar.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <io.h>


//Code Start


#include "stdafx.h"

void printMyMsg();

int setRead(wchar_t *);
int setWrite(wchar_t *);

char * wcharToChar(wchar_t *);

int _tmain(int argc, _TCHAR* argv[])
{
    if(argc < 3)
    {
        printMyMsg();
        exit(2);
    }
    if(!_wcsicmp(argv[1],L"-r"))
    {
        setRead(argv[2]);
        exit(2);
    }
    else if(!_wcsicmp(argv[1],L"-w"))
    {
        setWrite(argv[2]);
        exit(2);
    }
    else
    {
        printMyMsg();
        exit(2);
    }

    return 0;
}

int setRead(wchar_t * fname)
{
    return(_chmod(wcharToChar(fname),_S_IREAD));
}
int setWrite(wchar_t * fname)
{
    return(_chmod(wcharToChar(fname),_S_IWRITE));
}
void printMyMsg()
{
    printf("\nUsage: SetFileAttribute -R|-W <filename>");
    printf("\n");
    system("pause");
}
char * wcharToChar(wchar_t * inStr)
{
    size_t len = wcslen(inStr);
    char * tchar = (char *)malloc(len+1);
    wcstombs_s(NULL,tchar,len+1,inStr,len+1);
    return(tchar);
}

C++ Convert Between Various String Types

online tool to convert from one datatype to another

http://www.convertdatatypes.com/Language-CPlusPlus.html