首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCL、Linux和FLOCK

TCL、Linux和FLOCK
EN

Stack Overflow用户
提问于 2012-08-01 20:57:28
回答 1查看 1.5K关注 0票数 1

因此,我正在使用一个用TCL编写的程序,该程序使用FLOCK函数锁定文件。与当前运行的版本相比,我在较新版本的Linux上测试它。我发现,当较新的机器运行脚本时,它使用的是from /usr/bin/ FLOCK,这与TCL版本的FLOCK不同。TCL版本使用-read -write等,而Linux版本则使用完全不同的选项。

简而言之,程序停止工作,当它到达任何群集呼叫时出错。如果我更改选项以适应Linux版本,它会破坏其他机器上的程序。

是否有办法使它使用TCL版本而不是Linux版本?

EN

回答 1

Stack Overflow用户

发布于 2012-08-02 10:07:00

Tcl本身不附带flock命令,但如果您正在进行交互测试,您可能会看到它自动尝试使用系统命令。这种系统命令的自动使用并不是在脚本中完成的(这很容易由于不同的路径而导致不稳定),因此在编写脚本时,您应该明确说明您的意思。

如果您想使用system命令(它本身是不可移植的,特别是对于非Linux系统),那么只需:

代码语言:javascript
复制
exec flock $options...

请注意,Tcl使用了引用shell的不同形式的参数。这有时会让人在编写exec调用时被抓出来。

或者,使用TclX包中的flock Tcl命令。其语法与Linux系统实用程序的语法略有不同,很大程度上是因为它的级别有点低。对它有利的是,它的便携性更强。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11767476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档