.lo 3,2 .lm 0.rm 72 .fl bold.fl break.fl capitalize.fl hyphenate.fl index.xl.fl period .nhd .c;^*CREATE__DIR - Create Directory or Subdirectory\* .b .c;by ^&Rodrick A. Eldridge\& ^* .hl1 Introduction \* .b The CREATE__DIR routine will perform the following actions on each call to this routine: .ls .le;Create a directory on a specified device. .le;Set the specified protection on the directory. .le;Set the ownership of the directory to the specified UIC. .els .tp 7 ^* .hl1 Using CREATE__DIR \* ^* .hl2 Format \* The following shows the format of the CREATE__DIR program: .b .lt CREATE_DIR dev-dir-spec,owner-uic,prot-value .el .b .tp 5 ^* .hl2 Arguments \* .lm 9 .i -9 ^&dev-dir-spec\& .b Directory specification of the directory that CREATE__DIR will create. The ^&dev-dir-spec\& argument is the address of a descriptor pointing to this directory specification. .b The format of the ^&dev-dir-spec\& string conforms to standard Record Management Services (RMS) format. This specification must contain a disk and directory specification. .b This specification cannot contain a node name, file name, file type, file version, or wildcard characters. The maximum size of this string is 255 characters. .b .tp 5 .i -9 ^&owner-uic\& .b User Identification Code (UIC) identifying the owner of the created directory. The ^&owner-uic\& argument is the address of an unsigned longword that contains the UIC. If ^&owner-uic\& is zero, the owner UIC is that of the parent directory. .b .tp 5 .i -9 ^&prot-value\& .b System_/Owner_/Group_/World protection value of the directory you are creating. The ^&prot-value\& argument is the address of an unsigned word which contains this protection value. .b The following shows the structure of the protection value. Access is allowed for bits set to zero. .b .lt | world | group | owner | system | |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| | d | e | w | r | d | e | w | r | d | e | w | r | d | e | w | r | | e x r e e x r e e x r e e x r e | | l e i a l e i a l e i a l e i a | | e c t d e c t d e c t d e c t d | | t u e t u e t u e t u e | | e t e t e t e t | | e e e e | |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| 15 0 .el .b For example, to create a directory with the following protection: .b .lt (system:RWE,owner:RWE,group,world) .el .b specify, in hexadecimal, the following protection value: .b .lt FF88 .el .b .lm 0 ^* .hl2 Linking \* .b To use the CREATE__DIR routine, link your program to the TOOLS.OLB library in ISU__COMMON:[LIB]. .b For example: .b .lt LINK your_program+ISU_COMMON:[LIB]TOOLS/LIBR .el .b .tp 7 ^* .hl1 Condition Values Returned \* The following condition values may be returned by the CREATE__DIR routine: .b .lm 9 .i -9 ^*SS$__CREATED\* .b Routine successfully completed; directory created. .b .tp 3 .i -9 ^*SS$__NORMAL\* .b Routine successfully completed; directory already exists. .b .tp 3 .i -9 ^*SS$__INSFARG\* .b The argument list contained fewer than the three required arguments. .b .tp 3 .i -9 ^*LIB$__INVARG\* .b The ^&dev-dir-spec\& argument is longer than 255 characters. .b .tp 3 .i -9 ^*LIB$__INVFILSPE\* .b Invalid file specification. Either the file specification did not contain an explicit directory and device name, or it contained a node name, file name, file type, file version, or wildcard. This error is also produced if the device specified was not a disk. .b .tp 3 .i -9 Any condition values returned by ^*SYS$ASSIGN\*. .b .tp 3 .i -9 Any condition values returned by ^*SYS$DASSGN\*. .b .tp 3 .i -9 Any condition values returned by ^*SYS$PARSE\*. .b .tp 3 .i -9 Any condition values returned by ^*SYS$QIO\*. .b .tp 3 .i -9 Any condition values returned by ^*LIB$ANALYZE__SDESC\*. .b .tp 3 .i -9 Any condition values returned by ^*LIB$GET__EF\*. .lm 0