【问题标题】:Lock / Prevent edit of source files on Linux using C++使用 C++ 在 Linux 上锁定/防止编辑源文件
【发布时间】:2010-09-15 17:06:12
【问题描述】:

如何在 Linux 上使用 C++ 以编程方式锁定/解锁或阻止/启用编辑源文件。

我希望能够锁定源文件,这样如果我在编辑器中打开它,它就不允许我保存回同一个源文件。

我正在考虑可能将权限更改为只读(稍后将其更改回读写):我如何从 C++ 中做到这一点?

【问题讨论】:

  • 小心。仍然可以在编辑器中修改只读文件。例如 vim 会这样做(但它会询问用户)。这样做的技巧是先删除文件,然后重新创建它。如果您对包含该文件的目录具有写入权限,则这是可能的。
  • 一些编辑器会告诉你是否已经打开了一个给定的文件(例如 gedit 这样做)或者会注意到它已经打开并且只是保持两个窗口/选项卡/任何东西同步所以如果你编辑文件在一个窗口中它显示在您打开它的另一个位置(方便处理长文件) eclipse 这样做(可能是大多数 IDE)

标签: c++ linux file-locking


【解决方案1】:

试试 man fchmod:

姓名 chmod, fchmod - 更改文件的权限 概要 #include #include int chmod(const char *path, mode_t 模式); int fchmod(int fildes, mode_t 模式);

【讨论】:

  • 谢谢...知道在哪里寻找什么是有帮助的。伙计,我有很多事情要做吗!
【解决方案2】:

您为什么不使用 CVS 或 Subversion 等源代码管理工具? CVS 可以很好地锁定(Subversion 也是如此)。更重要的是,你有变化的历史。更好的是(无论如何使用 CVS),您必须执行“签出”步骤以使文件可写。

【讨论】:

  • 好发现!我这样做是为了获得经验;首先尝试按照我的方式做事,然后查看相关的开源模块以了解它应该如何完成。如果我自己先玩它,我总是会更容易学习。
  • 嗯...这通常会导致无望的偏见。弃用其他人使用的解决方案太容易了,因为这不是您对这个主题的第一个想法。
【解决方案3】:

是的,很难说你在找什么

  • 防止其他用户编辑您的文件 -> 使用“chmod, fchmod”

  • 防止您自己意外弄乱您的源文件 -> 您应该真正改变您的想法并使用源代码控制工具。喜欢Subversion (SVN) 甚至更好的Mercurial

【讨论】:

    猜你喜欢
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多