a firstworks project
Rudiments
About Documentation Download Licensing News

Using the permissions class

The permissions class provides static methods for working with file permissions.

Rudiments supports unix-style file permissions, even on Windows. The permissions class provides methods for parsing permission strings (like "rwxr-xr--") into numeric modes, converting numeric modes back to permission strings, and constructing permissions using convenience methods for common combinations.

The following example parses a permission string into a mode, converts a mode back to a string, builds permissions using convenience methods, and displays some common permission values.

#include <rudiments/permissions.h>
#include <rudiments/stdio.h>

int main(int argc, const char **argv) {

	// parse a permission string into a mode
	mode_t	mode=permissions::parsePermString("rwxr-xr--");
	stdoutput.printf("rwxr-xr-- = %04o\n",mode);


	// convert a mode back to a permission string
	char	*permstring=permissions::parsePermOctal(mode);
	stdoutput.printf("%04o = %s\n\n",mode,permstring);
	delete[] permstring;


	// build permissions using convenience methods
	mode_t	perms=permissions::getOwnerReadWrite()|
			permissions::getGroupRead()|
			permissions::getOthersRead();
	permstring=permissions::parsePermOctal(perms);
	stdoutput.printf("owner-rw + group-r + others-r = %s\n\n",
							permstring);
	delete[] permstring;


	// some common permission values
	permstring=permissions::parsePermOctal(
				permissions::getEveryoneReadWrite());
	stdoutput.printf("everyone-rw  = %s\n",permstring);
	delete[] permstring;

	permstring=permissions::parsePermOctal(
				permissions::getEveryoneReadWriteExecute());
	stdoutput.printf("everyone-rwx = %s\n",permstring);
	delete[] permstring;

	permstring=permissions::parsePermOctal(
				permissions::getOwnerReadWriteExecute());
	stdoutput.printf("owner-rwx    = %s\n",permstring);
	delete[] permstring;
}
Copyright 2017 - David Muse - Contact