打开了一个size不为零的文件,读取到的值却为零的一种分析和解决方法

103 篇文章 0 订阅
修改如下:
1,jam_create.c 新增定义:
kal_mutexid g_jam_file_mutex;
volatile int j2me_file_mutex_cnt = 0;
volatile module_type j2me_file_mutex_tid = MOD_NIL; 
jam_init()中增加mutex
g_jam_file_mutex = kal_create_mutex("J2ME FILE");
 
2.  jvm_file.c 加入以下接口
extern kal_mutexid g_jam_file_mutex;
extern int j2me_file_mutex_cnt;
extern module_type j2me_file_mutex_tid;
 
void jvm_file_mutex_lock(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                    */
    /*----------------------------------------------------------------*/
    /*----------------------------------------------------------------*/
    /* Code Body                                                           */
    /*----------------------------------------------------------------*/
    if (stack_int_get_active_module_id() != j2me_file_mutex_tid)
    {
        while (j2me_file_mutex_cnt > 0)
            kal_sleep_task(1);
        kal_take_mutex(g_jam_file_mutex);
        j2me_file_mutex_tid = stack_int_get_active_module_id();
    }
    ++j2me_file_mutex_cnt;
}
 
void jvm_file_mutex_unlock(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                    */
    /*----------------------------------------------------------------*/
    /*----------------------------------------------------------------*/
    /* Code Body                                                           */
    /*----------------------------------------------------------------*/
    ASSERT(j2me_file_mutex_tid == stack_int_get_active_module_id());
    --j2me_file_mutex_cnt;
    if (j2me_file_mutex_cnt == 0)
    {
        j2me_file_mutex_tid = MOD_NIL;
        kal_give_mutex(g_jam_file_mutex);
    }
}
 
3. 修改到的9个API的源码如下
/*****************************************************************************
 * FUNCTION
 *  jvm_file_delete
 * DESCRIPTION
 * 
 * PARAMETERS
 *  filename        [IN]       
 * RETURNS
 * 
 *****************************************************************************/
int jvm_file_delete(const char *filename)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                          */
    /*----------------------------------------------------------------*/
    kal_int32 err;
    module_type active_module_id = stack_int_get_active_module_id();
       kal_int32 result;
    /*----------------------------------------------------------------*/
    /* Code Body                             */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_9, FUNC_JVM_FILE_DELETE);
    MMI_PRINT(MOD_JAM,TRACE_GROUP_9,"[file name = %s]",(char * )filename);
    jvm_file_mutex_lock();
#ifndef __NEMO_VM__
    if (active_module_id == MOD_JAM)
    {   
           if (is_system_file((char*)filename))
           {
               kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_sys_dir_path, filename
);
           }
           else
           {
               kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_dir_path, filename);
           }
      
 
           /* this is to prevent removing a read only file */
           FS_SetAttributes(WCHARFilename_JAM, 0);
           if ((err = FS_Delete(WCHARFilename_JAM)) == FS_NO_ERROR)
           {             
               jvm_file_mutex_unlock();                  
               return 0;
           }
           else
           {
               g_jvm_file_error_code = err;                     
               jvm_file_mutex_unlock();                     
               return -1;
        }
    }       
    else
    {
        if (is_system_file((char*)filename))
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_sys_dir_path, filename);
        }
        else
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_dir_path, filename);
        }
 
        /* this is to prevent removing a read only file */
        FS_SetAttributes(WCHARFilename, 0);
        if ((err = FS_Delete(WCHARFilename)) == FS_NO_ERROR)
        {          
            jvm_file_mutex_unlock();                     
            return 0;
        }
        else
        {
            g_jvm_file_error_code = err;                     
            jvm_file_mutex_unlock();                     
            return -1;
        }
             
    }        
#else /* __NEMO_VM__ */
    if (active_module_id == MOD_JAM)
    {   
           if (is_system_file((char*)filename))
           {
               kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_sys_dir_path, filename
);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_sys_dir_path,
filename);
           }
           else
           {
               kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path, filename);
           }
 
 
           result = jvm_mvm_file_delete(jvm_file_name_buffer);              
            jvm_file_mutex_unlock();             
              return result;         
    }       
    else
    {
        if (is_system_file((char*)filename))
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_sys_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_sys_dir_path,
filename);
        }
        else
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path, filename);
        }
        result = jvm_mvm_file_delete(jvm_file_name_buffer);
        jvm_file_mutex_unlock();             
       return result;      
    } 
#endif /*__NEMO_VM__  */
 
}
 
/*****************************************************************************
 * FUNCTION
 *  jvm_file_rename
 * DESCRIPTION
 * 
 * PARAMETERS
 *  oldfilename     [IN]       
 *  newfilename     [IN]       
 * RETURNS
 * 
 *****************************************************************************/
int jvm_file_rename(const char *oldfilename, const char *newfilename)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    WCHAR newFilename[MAX_WCHAR_FILENAME_LEN];
    int i, file_count = work_info_ptr->virtual_file_info.virtual_file_count;
    kal_int32 err;
    module_type active_module_id = stack_int_get_active_module_id();
       kal_int32 result;
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* a real file should not overwrite a pre-install file */
    kal_trace(TRACE_GROUP_9, FUNC_JVM_FILE_RENAME);
    jvm_file_mutex_lock();
       /*
     * for (i = 0; i < file_count; i++)
     * {
     * if (strcmp(newfilename, work_info_ptr->virtual_file_info.
virtual_file_name[i]) == 0)
     * {
     * return -1;
     * }
       */
 
    if (active_module_id == MOD_JAM)
    {
 
        if (is_system_file((char*)oldfilename))
        {
            kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_sys_dir_path,
oldfilename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_sys_dir_path,
oldfilename);
        }
        else
        {
            kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_dir_path,
oldfilename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path,
oldfilename);
        }
 
        if (is_system_file((char*)newfilename))
        {
            kal_wsprintf(newFilename, "%s\\%s", work_sys_dir_path, newfilename
);
            kal_sprintf((kal_char *)newFilename,"%s\\%s",work_sys_dir_path,
newfilename);
        }
        else
        {
            kal_wsprintf(newFilename, "%s\\%s", work_dir_path, newfilename);
            kal_sprintf((kal_char *)newFilename,"%s\\%s",work_dir_path,
newfilename);
           
        }
 
        result = jvm_mvm_file_rename((const kal_char *)jvm_file_name_buffer,(
const kal_char *)newFilename);              
              jvm_file_mutex_unlock();             
              return result;
    }
    else
    {
        if (is_system_file((char*)oldfilename))
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_sys_dir_path,
oldfilename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path,
oldfilename);
        }
        else
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_dir_path, oldfilename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path,
oldfilename);
        }
       
        if (is_system_file((char*)newfilename))
        {
            kal_wsprintf(newFilename, "%s\\%s", work_sys_dir_path, newfilename
);
            kal_sprintf((kal_char *)newFilename,"%s\\%s",work_dir_path,
newfilename);
        }
        else
        {
            kal_wsprintf(newFilename, "%s\\%s", work_dir_path, newfilename);
            kal_sprintf((kal_char *)newFilename,"%s\\%s",work_dir_path,
newfilename);
        }
       
        result = jvm_mvm_file_rename((const kal_char *)jvm_file_name_buffer,(
const kal_char *)newFilename);              
              jvm_file_mutex_unlock();            
              return result;
    }
}
 
/*****************************************************************************
 * FUNCTION
 *  jvm_file_open
 * DESCRIPTION
 * 
 * PARAMETERS
 *  filename        [IN]       
 *  flags           [IN]       
 * RETURNS
 * 
 *****************************************************************************/
int jvm_file_open(const char *filename, int flags)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    int handle;
    int file_count = work_info_ptr->virtual_file_info.virtual_file_count;
    int i;
    jvm_file_struct * file;
    module_type active_module_id = stack_int_get_active_module_id();
       kal_int32 result;
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_9, FUNC_JVM_FILE_OPEN, flags);
    MMI_PRINT(MOD_JAM,TRACE_GROUP_9,"[file name = %s]",(char * )filename);
    jvm_file_mutex_lock();
    /* to avoid jam/jvm task use the same WCHARFilename */
    memset(jvm_file_name_buffer,0x00,MAX_WCHAR_FILENAME_LEN);
    memset(jvm_file_name_buffer_w,0x00,MAX_WCHAR_FILENAME_LEN*2);
    if (active_module_id == MOD_JAM)
    {
        if (is_system_file((char*)filename))
        {
            kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_sys_dir_path,
filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_sys_dir_path,
filename);
        }
        else
        {
            kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path,filename);
        }
              result = jvm_mvm_file_open(jvm_file_name_buffer,flags);             
              jvm_file_mutex_unlock();             
        return result;
    }
    else
    {
        if (is_system_file((char*)filename))
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_sys_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_sys_dir_path,
filename);
        }
        else
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path,filename);
        }
       
              result = jvm_mvm_file_open(jvm_file_name_buffer,flags);              
              jvm_file_mutex_unlock();             
        return result;
    }
}
 
/*****************************************************************************
 * FUNCTION
 *  jvm_file_findfirst
 * DESCRIPTION
 * 
 * PARAMETERS
 *  string      [?]
 * RETURNS
 * 
 *****************************************************************************/
// 20101229: [MAUI_02731591] Changed
char *jvm_file_findfirst(char *string)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    FS_DOSDirEntry info;
///    WCHAR name_pattern[MAX_WCHAR_FILENAME_LEN];
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_9, FUNC_JVM_FILE_FIND_FIRST);
    jvm_file_mutex_lock();
    kal_sprintf(jvm_file_name_buffer, "%s\\%s", work_dir_path, string);
    memset(CHARFilename,0x00,MAX_WCHAR_FILENAME_LEN*sizeof(char));
    KVM_FindFilehandle = jvm_mvm_file_findfirst(jvm_file_name_buffer,
CHARFilename,MAX_WCHAR_FILENAME_LEN, 0);
    if(KVM_FindFilehandle > 0){              
        jvm_file_mutex_unlock();              
        return CHARFilename;
       }
    else{
        jvm_file_mutex_unlock();
        return NULL;
       }
}
 
/*****************************************************************************
 * FUNCTION
 *  jvm_file_isexist
 * DESCRIPTION
 * 
 * PARAMETERS
 *  filename        [?]
 * RETURNS
 * 
 *****************************************************************************/
int jvm_file_isexist(char *filename)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    module_type active_module_id = stack_int_get_active_module_id();
       kal_int32 result;
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* system files are files except .db(.rss), .jar files */
    jvm_file_mutex_lock();      
    if (active_module_id == MOD_JAM)
    {      
        if (is_system_file((char*)filename))
        {
            kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_sys_dir_path,
filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_sys_dir_path,
filename);
        }
        else
        {
            kal_wsprintf(WCHARFilename_JAM, "%s\\%s", work_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path, filename);
        }
        result = jvm_mvm_file_isexist(jvm_file_name_buffer);
        jvm_file_mutex_unlock();              
        return result;
    }
    else
    {
        if (is_system_file((char*)filename))
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_sys_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_sys_dir_path,
filename);
        }
        else
        {
            kal_wsprintf(WCHARFilename, "%s\\%s", work_dir_path, filename);
            kal_sprintf(jvm_file_name_buffer,"%s\\%s",work_dir_path, filename);
        }
       
        result = jvm_mvm_file_isexist(jvm_file_name_buffer);
        jvm_file_mutex_unlock();             
        return result;
    }
}
 
/*****************************************************************************
 * FUNCTION
 *  jvm_mvm_file_open
 * DESCRIPTION
 * 
 * PARAMETERS
 *  file_path       [IN]       
 *  flags           [IN]       
 * RETURNS
 * 
 *****************************************************************************/
kal_int32 jvm_mvm_file_open(const kal_char * file_path ,int flags)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 handle;
    kal_int32 file_count = work_info_ptr->virtual_file_info.virtual_file_count;
    kal_int32 i;
    kal_int32 file_name_length = 0;
    kal_char * file_name;
    jvm_file_struct * file;
    kal_wchar * file_path_w = jvm_file_name_buffer_w;
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    jvm_file_mutex_lock();
    file = jvm_mvm_file_get_cached_file(file_path);
    if(file != NULL)
    {
        jvm_file_mutex_unlock();
        return (int)file;
    } 
    kal_wsprintf(file_path_w,"%s",file_path);
    handle = DRM_open_file(file_path_w, flags, DRM_PERMISSION_EXECUTE);
#ifdef JVM_FILE_DEBUG_SUPPORT  
    kal_prompt_trace(MOD_J2ME,"[JVM_FILE]jvm_mvm_file_open,file_path=%s,handle
=%d",file_path,handle);
#endif    
    if (handle < 0)
    {
        g_jvm_file_error_code = handle; 
        file_name = jvm_mvm_file_get_file_name(file_path);
        if(file_name != NULL)
        {
            for (i = 0; i < file_count; i++)
            {
                if (strcmp(file_name, work_info_ptr->virtual_file_info.
virtual_file_name[i]) == 0)
                {
                    file = (jvm_file_struct *) get_ctrl_buffer(sizeof(
jvm_file_struct));
                    ASSERT(file != NULL);
                    memset(file,0x00,sizeof(jvm_file_struct));
                    file->type = JVM_FILE_TYPE_VRITUAL;
                    file->position = 0;
                    file->size = work_info_ptr->virtual_file_info.
virtual_file_size[i];
                    file->data = (kal_uint8*) work_info_ptr->virtual_file_info
.virtual_file_data[i];
                    jvm_trace_time("[Performane][TIME] get vritual file",
JVM_TRACE_TYPE_DEBUG);                               
                             jvm_file_mutex_unlock();                                 
                             return (int)file;
                }
            }
        }
       
        /* the file is neigher in real file system nor virtual file system */
        jvm_file_mutex_unlock();
        return -1;
    }
 
    if(jvm_mvm_file_is_cached_enabled() && strcmp((file_path + strlen(
file_path) - 4), ".jar") == 0)
    {
        file = (jvm_file_struct *)jvm_mvm_file_cached_open(file_path,handle);
        if(file != NULL){
            jvm_file_mutex_unlock();
            return (int)file;
              }
    }
 
    file = (jvm_file_struct *) get_ctrl_buffer(sizeof(jvm_file_struct));
    ASSERT(file != NULL);
    file->type = JVM_FILE_TYPE_NORMAL;
    file->handle = handle;
 
#ifdef JVM_FILE_DEBUG_SUPPORT
    memset(file->filename,0x00,10);
    file_name_length = strlen(file_path);
 
    if(file_name_length < 10)
    {
        memcpy(file->filename,file_path,file_name_length);
    }
    else
    {
        memcpy(file->filename,file_path + file_name_length - 10,10);
    }
   
#endif /* JVM_FILE_DEBUG_SUPPORT */
   
#if defined(__DRM_SUPPORT__)
    if (file->type == JVM_FILE_TYPE_NORMAL && DRM_get_object_method(handle,
NULL) != DRM_METHOD_NONE)
    {
        file->type = JVM_FILE_TYPE_DRM;
    }
#endif /* defined(__DRM_SUPPORT__) */
   
#if defined(ENCRYPT_JAR_FILE)
    if (file->type == JVM_FILE_TYPE_NORMAL && strcmp((file_path + strlen(
file_path) - 4), ".jar") == 0)
    {
        file->encrypt_code = get_base_code(handle);
        file->type = JVM_FILE_TYPE_ENCRYPTED_JAR;
    }
#endif /* defined(ENCRYPT_JAR_FILE) */
 
#ifdef JVM_FILE_DEBUG_SUPPORT
    kal_prompt_trace(MOD_J2ME,"[JVM_FILE]jvm_mvm_file_open,file_handle=%d",
file);
#endif
 
   
    if(jam_mvm_get_current_vm_id() >= 0 )
       jvm_resource_mgr_register(jam_mvm_get_current_vm_id(),
JAVA_SYS_FILE_DEVICE, (kal_int32)file, NULL, NULL, &
jvm_mvm_file_finalize_callback);
       jvm_file_mutex_unlock();
       return (kal_int32)file;
}
 
/*****************************************************************************
 * FUNCTION
 *  jvm_mvm_file_delete
 * DESCRIPTION
 * 
 * PARAMETERS
 *  file_path       [IN]           
 * RETURNS
 * 
 *****************************************************************************/
kal_int32 jvm_mvm_file_delete(const kal_char *file_path)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 err; 
    kal_wchar * file_path_w = jvm_file_name_buffer_w;
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
#ifdef JVM_FILE_DEBUG_SUPPORT
    kal_prompt_trace(MOD_J2ME,"[JVM_FILE]jvm_mvm_file_delete,handle=%s",
file_path);
#endif
    jvm_file_mutex_lock();
    kal_wsprintf(file_path_w,"%s",file_path);
       /* this is to prevent removing a read only file */
       FS_SetAttributes(file_path_w, 0);
       if ((err = FS_Delete(file_path_w)) == FS_NO_ERROR)
       {
           jvm_file_mutex_unlock();
           return 0;
       }
       else
       {
           jvm_file_mutex_unlock();
           g_jvm_file_error_code = err;
           return -1;
    }
      
}
 
/*****************************************************************************
 * FUNCTION
 *  jvm_mvm_file_isexist
 * DESCRIPTION
 * 
 * PARAMETERS
 *  file_path       [IN]       
 * RETURNS
 * 
 *****************************************************************************/
kal_bool jvm_mvm_file_isexist(const kal_char * file_path)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_char * file_name;
    kal_int32 index;
    kal_int32 virtual_file_count;
    kal_wchar * file_path_w = jvm_file_name_buffer_w;
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
 #ifdef JVM_FILE_DEBUG_SUPPORT   
    kal_prompt_trace(MOD_J2ME,"[JVM_FILE]jvm_mvm_file_isexist,file_path=%s",
file_path);
 #endif
    jvm_file_mutex_lock();
    if(file_path == NULL){
        jvm_file_mutex_unlock();
        return KAL_FALSE;
       } 
    file_name = jvm_mvm_file_get_file_name(file_path);
    if(file_name == NULL){
        jvm_file_mutex_unlock();
        return KAL_FALSE;
       }
    kal_wsprintf(file_path_w,"%s",file_path);
    if (FS_GetAttributes(file_path_w) < 0)
    {
        virtual_file_count = work_info_ptr->virtual_file_info.
virtual_file_count;
 
        /* if didn't find that, try virtual files */
        for (index = 0; index < virtual_file_count; index++)
        {
            if (strcmp(file_name, work_info_ptr->virtual_file_info.
virtual_file_name[index]) == 0)
            {
                jvm_file_mutex_unlock();
                return KAL_TRUE;
            }
        }
        jvm_file_mutex_unlock();
        return KAL_FALSE;
    }
    else
    {
        jvm_file_mutex_unlock();
        return KAL_TRUE;
    }
}
 
/*****************************************************************************
 * FUNCTION
 *  jvm_mvm_file_rename
 * DESCRIPTION
 * 
 * PARAMETERS
 *  old_file_path       [IN]       
 *  new_file_path       [IN]              
 * RETURNS
 * 
 *****************************************************************************/
kal_int32 jvm_mvm_file_rename(const char *old_file_path, const char *
new_file_path)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 index;
    kal_int32 file_count = work_info_ptr->virtual_file_info.virtual_file_count;
    kal_int32 err;
    kal_char * new_file_name;
    kal_wchar * old_file_path_w = jvm_file_name_buffer_w;
    kal_wchar new_file_path_w[MAX_WCHAR_FILENAME_LEN];
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* a real file should not overwrite a pre-install file */
#ifdef JVM_FILE_DEBUG_SUPPORT     
    kal_prompt_trace(MOD_J2ME,"[JVM_FILE]jvm_mvm_file_rename,old_file_path=%s,
new_file_path",old_file_path,new_file_path);
#endif
    jvm_file_mutex_lock();
    new_file_name = jvm_mvm_file_get_file_name(new_file_path);
    if(new_file_name == NULL)
    {
        g_jvm_file_error_code = -1;
        jvm_file_mutex_unlock();
        return -1;
    }
    /**  //removed for MAUI_02724396
    for (index = 0; index < file_count; index++)
    {
        if (strcmp(new_file_name, work_info_ptr->virtual_file_info.
virtual_file_name[index]) == 0)
        {
            return -1;
        }
    }
    */
 
    kal_wsprintf(old_file_path_w,"%s",old_file_path);
    kal_wsprintf(new_file_path_w,"%s",new_file_path);
    if ((err = FS_Move(old_file_path_w, new_file_path_w, FS_MOVE_KILL |
FS_MOVE_OVERWRITE, NULL, NULL, 0)) == FS_NO_ERROR)
    {
        jvm_file_mutex_unlock();
        return 0;
    }
    else
    {
        g_jvm_file_error_code = err;
        jvm_file_mutex_unlock();
        return -1;
    }         
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值