int32 OS_mv (const char *src, const char *dest) { int32 status; status = OS_cp (src, dest); if ( status == OS_FS_SUCCESS ) { status = OS_remove(src); } return ( status); }
int32 OS_mv (const char *src, const char *dest) { int i; int32 status; /* ** Validate the source and destination ** These checks may seem redundant because OS_cp and OS_remove also do ** the same checks, but this call needs to abort before doing a copy ** in some cases. */ /* ** Check to see if the path pointers are NULL */ if (src == NULL || dest == NULL) { return OS_FS_ERR_INVALID_POINTER; } /* ** Check to see if the paths are too long */ if (strlen(src) >= OS_MAX_PATH_LEN) { return OS_FS_ERR_PATH_TOO_LONG; } if (strlen(dest) >= OS_MAX_PATH_LEN) { return OS_FS_ERR_PATH_TOO_LONG; } /* ** check if the names of the files are too long */ if (OS_check_name_length(src) != OS_FS_SUCCESS) { return OS_FS_ERR_NAME_TOO_LONG; } if (OS_check_name_length(dest) != OS_FS_SUCCESS) { return OS_FS_ERR_NAME_TOO_LONG; } /* ** Make sure the source file is not open by the OSAL before doing the move */ for ( i =0; i < OS_MAX_NUM_OPEN_FILES; i++) { if ((OS_FDTable[i].IsValid == TRUE) && (strcmp(OS_FDTable[i].Path, src) == 0)) { return OS_FS_ERROR; } } status = OS_cp (src, dest); if ( status == OS_FS_SUCCESS ) { status = OS_remove(src); } return ( status); }/*end OS_mv */