mkdir . files . sncode
MKDIR
NAME
mkdir - Used to create a directory.
SYNOPSIS
mkdir([permissions:integer, owner:"rwx", group:"rwx", other:"rwx",] "directories");
DESCRIPTION
This function is used to create directories. The user can create several directories at the same time. If the user does mkdir("/a/b/c/d/e") where a,b,c,d and e do not exist, all directories will be created.
The permissions of the directory can be specified using:
permissions:UREAD|UWRITE.
Other permissions can be added using the Owner, Group or other functions.
The user can also include the file "/includes/extenso.sn" which contains definitions for the different permissions:
Note: In the followings examples, the _ between the { should be removed to make it work.
%include "/includes/extenso.sn"; {_{ // Definitions for function stat %define FILE_SOURCE_PERMS 0x1000; // Copy source file's permissions // Definitions for set file permissions %define USETID 0x8000; /* Set user id */ %define UREAD 0x0400; /* Read by user */ %define UWRITE 0x0200; /* Write by user */ %define UEXECUTE 0x0100; /* Execute by user */ %define GSETID 0x4000; /* Set group id */ %define GREAD 0x0040; /* Read by group */ %define GWRITE 0x0020; /* Write by group */ %define GEXECUTE 0x0010; /* Execute by group */ %define WSTICKY 0x2000; /* Sticky bit */ %define WREAD 0x0004; /* Read by others */ %define WWRITE 0x0002; /* Write by others */ %define WEXECUTE 0x0001; /* Execute by others */ %define OS_DEFAULT 0x0FFF; /* use OS's default permissions */ }}
EXAMPLES
Note: In the followings examples, the _ between the { should be removed to make it work.
res={_{ %include "/includes/extenso.sn"; rmdir("/tmp/abc"); mkdir(owner:"rw",group:"rwx",other:"x","/tmp/abc"); -e "/tmp/abc"; a=stat("/tmp/abc"); printf(" %x",a.fileperms); }}.), qq(res=true 651.)); res={_{ %include "/includes/extenso.sn"; rmdir("/tmp/abc"); mkdir(permissions:UREAD|UWRITE|UEXECUTE|GREAD|GWRITE|GEXECUTE|WWRITE|WREAD|WEXECUTE,"/tmp/abc"); -e "/tmp/abc"; a=stat("/tmp/abc"); printf(" %x",a.fileperms); }}.), qq(res=true 755.)); res={_{ %include "/includes/extenso.sn"; rmdir("/tmp/abc"); mkdir(permissions:UWRITE|UREAD,group:"rwx","/tmp/abc"); -e "/tmp/abc"; a=stat("/tmp/abc"); printf(" %x",a.fileperms); " "; a.fileperms & WWRITE != 0; " "; a.fileperms & UWRITE != 0; " "; a.fileperms & GWRITE != 0; " "; a.fileperms & GREAD != 0; rmdir("/tmp/abc"); " "; -e "/tmp/abc"; }}. return res=true 650 false true false true false. res={_{ mkdir(date:"...",atdate:"...","/tmp/xxx"); }}. return Parameter date is not valid res={_{ mkdir(owner:"abc","/tmp/abc"); }}. return Invalid perms for owner. res={_{ mkdir(group:"abc","/tmp/abc"); }}. return Invalid perms for group res={_{ mkdir(other:"abc","/tmp/abc"); }}. return Invalid perms for other res={_{ %include "/includes/extenso.sn"; rmdir("/tmp/abc"); mkdir("/tmp/abc"); -e "/tmp/abc"; a=stat("/tmp/abc"); printf("%x",a.fileperms); "wwrite="; a.fileperms & WWRITE != 0; "uwrite="; a.fileperms & UWRITE != 0; rmdir("/tmp/abc"); -e "/tmp/abc"; rmdir("/tmp/abc"); rmdir("/tmp/abc"); rmdir("/tmp/abc"); rmdir("/tmp/abc"); mkdir("/tmp/abc/def/ghi"); -e "/tmp/abc/def/ghi"; rmdir("/tmp/abc"); -e "/tmp/abc"; rmdir(recursive:true,"/tmp/abc"); -e "/tmp/abc"; }}. return res=true755wwrite=falseuwrite=truefalsetruetruefalse. res={_{ %include "/includes/extenso.sn"; mkdir(permissions:UWRITE|UREAD,"/tmp/abc"); -e "/tmp/abc"; a=stat("/tmp/abc"); printf(" %x",a.fileperms); " "; a.fileperms & WWRITE != 0; " "; a.fileperms & UWRITE != 0; rmdir("/tmp/abc"); " "; -e "/tmp/abc"; }}. return res=true 600 false true false.
AUTHOR
Written by Pierre Laplante and Caroline Laplante, <laplante@sednove.com>