en:docs:fapi:dosmkdir

This is part of Family API which allow to create dual-os version of program runs under OS/2 and DOS

Note: This is legacy API call. It is recommended to use 32-bit equivalent

2021/09/17 04:47 · prokushev · 0 Comments
2021/08/20 03:18 · prokushev · 0 Comments

DosMkDir

This call creates a subdirectory.

Syntax

DosMkDir (DirName, Reserved)

Parameters

  • DirName (PSZ) - input : Address of the ASCIIZ directory path name, which may or may not include a drive specification. If no drive is specified, the current drive is assumed.

DosQSysInfo is called by an application during initialization to determine the maximum path length allowed by OS/2.

  • Reserved (ULONG) - input : Reserved and must be set to zero.

Return Code

rc (USHORT) - return

Return code descriptions are:

  • 0 NO_ERROR
  • 3 ERROR_PATH_NOT_FOUND
  • 5 ERROR_ACCESS_DENIED
  • 26 ERROR_NOT_DOS_DISK
  • 87 ERROR_INVALID_PARAMETER
  • 108 ERROR_DRIVE_LOCKED
  • 206 ERROR_FILENAME_EXCED_RANGE

Remarks

If any subdirectory names in the path do not exist, the subdirectory is not created. Upon return, a subdirectory is created at the end of the specified path.

DosQSysInfo must be used by an application to determine the maximum path length supported by OS/2. The returned value should be used to dynamically allocate buffers that are to be used to store paths.

If a program running with the NEWFILES bit set tries to create a directory with blanks immediately preceding the dot on a FAT drive, the system rejects the name. For example, if c: is a FAT drive, the name “file .txt” is rejected and the name “file.txt” is accepted.

Example Code

C Binding

  #define INCL_DOSFILEMGR
 
  USHORT  rc = DosMkDir(DirName, Reserved);
 
  PSZ              DirName;       /* New directory string name */
  ULONG            0;             /* Reserved (must be zero) */
 
  USHORT           rc;            /* return code */

MASM Binding

  EXTRN  DosMkDir:FAR
  INCL_DOSFILEMGR     EQU 1
 
  PUSH@  ASCIIZ  DirName       ;New directory name string
  PUSH   DWORD   0             ;Reserved (must be zero)
  CALL   DosMkDir

Returns WORD

Note