首页 > 其他分享 >virtuoso文件被锁打不开解决方法

virtuoso文件被锁打不开解决方法

时间:2023-05-31 09:01:23浏览次数:38  
标签:文件 删除 lock list virtuoso file CLS 打不开

Cadence软件使用过程中偶尔会遇到文件被lock的情况,这是Cadence软件对文件的一种保护措施,大部分情况都是对用户友好的,但是偶尔也会给用户带来困扰,给工作带来的一定的不便。

文件是如何被锁的

Cadence在用户打开文件进行编辑的时候会在文件的同一级目录新建一个lock文件,用来标识文件的状态。

一般情况下如果文件被正常关闭,这个lock文件会在文件关闭或者程序退出的时候自动删除。

可是如果编辑过程中文件被非正常关闭,软件来不及删除对应的lock文件就会导致下一次文件无法以编辑模式打开,需要用户去该文件的所在路径删除遗留的lock文件。

Using the CLS Administrative Tool

Cadence提供了CLS Administrative Tool给用户使用,通过这个工具,用户可以随时查看或者释放lock文件。

使用CLS Administrative Tool管理lock文件比用户直接去某一目录下操作lock文件要安全并且方便很多,通过CLS Administrative Tool可以轻易完成以下几个工作:

  • 解锁指定的文件(删除指定目录下的lock文件)
  • 查看某一目录及其子目录下所有的lock文件
  • 删除某一目录及其子目录下所有的lock文件
  • 删除所有CLS格式的lock文件,无论该文件在何时、何地创建

CLS Administrative Tool还可以实现其它功能,感兴趣的同学可以自行在Cadence Help中搜索与CLS Administrative Tool相关的内容,进行更深入的学习。CLS Administrative Tool可以运行在交互式界面或者命令行模式,小目同学觉得它运行在命令行模式更加方便,也与脚本实现更加相近,所以这里只简单介绍一下它运行在命令行模式下的内容。

CLS Administrative Tool运行命令

命令功能描述
clsAdminTool -ale directoryHierarchy 列出该文件夹及其子文件夹下所有lock文件
clsAdminTool -are directoryHierarchy 删除该文件夹及其子文件夹下所有lock文件
clsAdminTool -asre filePath 删除该文件对应的lock文件

直接在终端中输入上面命令,可以运行CLS Administrative Tool并输出相应的结果,下面是输出信息。

使用skill脚本运行命令

有了上面的铺垫应该很容易想到,所谓的删除lock文件的脚本最简单、最安全的方法就是编写一个skill脚本,可以按照需要执行上面的命令。恰好,skill脚本提供sh()函数,可以在skill脚本中执行shell命令。

根据需要小目同学编写了一个skill脚本,其中定义了一个函数和一个快捷键,在需要删除lock文件的时候使用相应的快捷键调用一遍函数运行lock文件删除命令即可。

/**********************************************************************
*author     :   Write by Official Wechat Account: ICSkillSharing
*date       :   2020-08-07
*function   :   Delete lock files
**********************************************************************/

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; start Delete Lock Files 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; bindkeys

hiSetBindKeys("Layout" 
    list(
        list("<Key>D" "view_delete_lock_file_cb()")
    )
)

hiSetBindKeys("Schematics" 
    list(
        list("<Key>D" "view_delete_lock_file_cb()")
    )

procedure( view_delete_lock_file_cb( )
    sh(strcat("clsAdminTool -asre " geGetWindowCellView( hiGetCurrentWindow( ) )~>fileName))
    printf("Delete lock file for view: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>cellName )
); procedure

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; end Delete Lock Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

很多时候只删除一个文件的lock文件可能还无法满足需求,将脚本完善,分别为单个文件和库定义删除lock文件的函数。

/**********************************************************************
*author     :   Write by Official Wechat Account: ICSkillSharing
*date       :   2020-08-07
*function   :   Delete lock files
**********************************************************************/

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; start Delete Lock Files 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; bindkeys

hiSetBindKeys("Layout" 
    list(
        list("<Key>D" "view_delete_lock_file_cb()")
        ;list("Shift<Key>D" "lib_delete_lock_file_cb()")
    )
)

hiSetBindKeys("Schematics" 
    list(
        list("<Key>D" "view_delete_lock_file_cb()")
        ;list("Shift<Key>D" "lib_delete_lock_file_cb()")
    )
)

procedure( view_delete_lock_file_cb( )
    sh(strcat("clsAdminTool -asre " geGetWindowCellView( hiGetCurrentWindow( ) )~>fileName))
    printf("Delete lock file for view: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>cellName )
); procedure

procedure( lib_delete_lock_file_cb( )
    sh(strcat("clsAdminTool -are " ddGetObjReadPath(geGetWindowCellView( hiGetCurrentWindow( ) )~>lib)))
    printf("Delete lock file for library: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>libName )
); procedure

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; end Delete Lock Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

转载自以下作者

写一个删除lock文件的skill脚本 - 知乎 (zhihu.com)

作者:小目(wx:student_xiaomu)

微信公众号:ICSkillSharing,是一个共同学习的平台,分享最新IT类资讯、原创内容、IC中脚本语言的教程与使用心得、模拟IC新手在学习过程中遇到的问题等,与大家一起成长进步!

标签:文件,删除,lock,list,virtuoso,file,CLS,打不开
From: https://www.cnblogs.com/icmaxwell/p/17445056.html

相关文章

  • Linux文件相关的学习
    一、查看文件信息ls-l查看文件的详细信息二、FHS:文件系统层级结构/根目录,所有的目录、文件、设备都在/之下。/bin存放命令的地方,其实/bin是/usr/bin的软链接,一般命令都放在/usr/bin中/boot系统启动相关的文件/dev设备文件目录/etc配置文件目录/mnt临时挂载点/ro......
  • cmd合并多个ts文件,ffmpeg快速转ts为mp4文件,通过m3u8合并文件
    摘自:https://blog.csdn.net/qq_33957603/article/details/1227638891、如何合并多个ts文件进入目录执行如下cmd命令即可copy/b*.tsnew.ts  2、如何将ts转为mp4ffmpeg下载官网:https://ffmpeg.org/github下载稳定版:https://github.com/BtbN/FFmpeg-Builds/releases下......
  • pb文件本地pod管理
    Pod::Spec.newdo|s|s.name='AKProtoOC's.version='1.0.0's.license='MIT's.summary='PB文件本地库管理's.homepage='https://xx......
  • Linux rm 删除指定文件外的其他文件 方法汇总
    转载自:https://www.cnblogs.com/ShaneZhang/p/3361361.html 一、Linux下删除文件和文件夹常用命令如下:删除文件:rmfile删除文件夹:rm-rfdir需要注意的是,rmdir只能够删除空文件夹。 二、删除制定文件(夹)之外的所有文件呢?1、方法1,比较麻烦的做法是:  复制需要保留......
  • parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的colum
    Parquet是Twitter贡献给开源社区的一个列数据存储格式,采用和Dremel相同的文件存储算法,支持树形结构存储和基于列的访问。ClouderaImpala也将使用Parquet作为底层的存储格式。在很多大数据的应用场景下面,比如电信行业,具有一定规则的数据,字段很多,但是每次查询仅仅针对其中少数的几个......
  • 网安--Linux文件和目录管理
    查询网站:https://wangchujiang.com/linux-command/lsls-t    按时间ls-s  按大小pwd    打印当前的工作路径pwd-P   打印物理位置cd      filei+文件/目录     查看文件类型cp+选项源文件目标文件-f强制-r递归处理findfind目......
  • 关于VRP配置文件的操作
    关于VRP配置文件的操作目录关于VRP配置文件的操作场景一场景二前言:关于华为网络设备操作系统VRP配置文件的操作是NA级别的内容,已经学过很久了,但到了真实环境使用时多多少少有一些不自然,原因无非是思考的深度不足且练习的次数也不足,虽然现在已经学到IE了,但发觉发现这些基础的操......
  • Javascript上传文件到阿里OSS存储,并支持进度查看
    现在使用js上传文件的插件有很多,例如:plupload等等今天我记录一下使用原生js的上传文件,并且支持进度查看,下面直接上代码:html代码:<inputtype="file"onchange="uploadMedia(this)"><aid="showProgress"style="display:none;"href="#"></a>预览效......
  • java根据文件IO流实现文件拷贝
    代码实现如下1/**2*作用:执行文件夹文件拷贝3*@authorqi4*@paramcopyFile5*@paramcopyToFile6*@returnvoid7**/8publicstaticvoidcopyDir(FilecopyFile,FilecopyToFile)throwsIOException{9......
  • vscode配置单个cpp文件打断点的文件
    (51条消息)【工具】VScode设置断点调试(以cpp为例)_vdcode运行断点cpp_沙diao网友的博客-CSDN博客launch.json内容{//UseIntelliSensetolearnaboutpossibleattributes.//Hovertoviewdescriptionsofexistingattributes.//Formoreinformation,......