en:ibm:ifs:routines:move

FS_MOVE

Purpose

Moves (renames) the specified file or subdirectory.

Calling Sequence

int far pascal FS_MOVE(pcdfsi, pcdfsd, pSrc, iSrcCurDirEnd, pDst,
                       iDstCurDirEnd, flags)
 
struct cdfsi far * pcdfsi;
struct cdfsd far * pcdfsd;
char far * pSrc;
unsigned short iSrcCurDirEnd;
char far * pDst;
unsigned short iDstCurDirEnd;
unsigned short flags;

Where

pcdfsi is a pointer to the file-system-independent working directory structure.

pcdfsd is a pointer to the file-system-dependent working directory structure.

pSrc is a pointer to the ASCIIZ name of the source file or directory.

The FSD does not need to verify this pointer.

iSrcCurDirEnd is the index of the end of the current directory in pSrc.

This is used to optimize FSD path processing. If iSrcCurDirEnd == -1 there is no current directory relevant to the source name text.

pDst is a pointer to the ASCIIZ name of the destination file or directory.

The FSD does not need to verify this pointer.

iDstCurDirEnd is the index of the end of the current directory in pDst.

This is used to optimize FSD path processing. If iDstCurDirEnd == -1 there is no current directory relevant to the destination name text.

flags indicates destination name type.

Flags == 0x0040 indicates non-8.3 filename format. All other values are reserved.

Remarks

The file specified in filename should be moved to or renamed as the destination filename, if possible.

Neither the source nor the destination filename may contain wildcard characters.

FS_MOVE may be used to change the case in filenames.

The non-8.3 filename format attribute in the directory entry for the destination name should be set according to the value in flags.

In the case of a subdirectory move, the system does the following checking:

  • No files in this directory or its subdirectories are open.
  • This directory or any of its subdirectories is not the current directory for any process in the system.

In addition, the system also checks for circularity in source and target directory names; that is, the source directory is not a prefix of the target directory.

Note: OS/2 does not validate input parameters. Therefore, an FSD should call FSH_PROBEBUF where appropriate.