标签: filelock

使用C程序在Linux中锁定文件

我想从C程序创建一个文件,并且想在我的C二进制文件中使用较长时间。但是我想以这样的方式创建文件:在我的C程序完成对文件的创建和解锁之前,没有人(可以使用vim或任何其他编辑器)打开和读取文件内容。

请提前帮助我。

filelock

3
推荐指数
1
解决办法
5129
查看次数

如何在编辑时锁定Ubuntu服务器中的文件

这是我第一次与其他开发人员一起开发项目(现在只有两个).我们的想法是使用FTP/SFTP软件(如FileZilla)直接从服务器编辑文件.我们希望打开用于编辑的任何文件都被阻止,因此其他用户无法同时编辑它.这可能吗?如果没有FileZilla,也许使用其他软件?我看过Git,Codiad和其他类似的解决方案,但它们太复杂了(在GitHub中合并并发版本并不简单)或者有bug(Codiad没有保存文件).我们认为文件锁定是原始的,但对我们来说足够好(我们在同一个房间).问题是:我们如何实施它?

filezilla file-locking filelock ubuntu-server

3
推荐指数
1
解决办法
588
查看次数

C# 避免在 Assembly.Load 时锁定文件

我的情况是;

我正在设计一个插件应用程序,基于动态加载插件程序集,多个用户可以运行托管在服务器机器上的应用程序。应用程序在启动时从我的实时更新服务器自动更新插件程序集。所以插件文件(及其附属 dll 不应该被锁定在文件系统上。

 byte[] assemblyBytes = File.ReadAllBytes("asm-path");
 var assembly = Assembly.Load(assemblyBytes);
Run Code Online (Sandbox Code Playgroud)

正如预期的那样没有锁定 dll 文件。但是如果我正在加载的 dll 本身具有静态引用 dll 呢?他们现在被锁定在文件系统上。

命名文件,让我们说;

  • APP.Exe 是我的基础应用程序;
  • PL1.dll 是我的第一个插件,APP.exe 将它加载到一个新的 Appdomain
  • PL2.dll 是我的第二个插件,APP.exe 将它加载到一个新的 Appdomain 中
  • PL1_S.dll 是 PL1.dll 插件的静态引用 dll,加载在 PL1 AppDomain 中
  • PL_COMMON 是 PL1 和 PL2 插件的静态引用 dll,由 PL1 和 PL2 AppDomains 加载

PL1_S 和 PL_COMMON 也不应该像 PL1 和 PL2 程序集那样被锁定在文件中

关于如何解决这个问题的任何想法?

c# dll filelock .net-assembly

2
推荐指数
1
解决办法
2985
查看次数

如何在.Net中访问Windows全局文件锁表?

有没有办法,通过.Net或通过删除.Net中的Win32 API来访问Windows全局文件锁表?

我正在寻找一个更好的解决方案来确定一组文件是否被锁定,而不是检查每个单独的文件以查看是否已对其进行锁定.

.net file-locking filelock

2
推荐指数
1
解决办法
119
查看次数

如何确定是否存在H2数据库文件锁?

由于我不会解释的原因(因为人们将在另一个主题上引导他们的回答,而不是我手头的问题),我需要知道如何确定我的H2数据库是否被锁定.使用Java代码,如何确定数据库中是否存在锁定文件?

java database h2 filelock

2
推荐指数
1
解决办法
2995
查看次数

使用Java FileLock有多安全?

使用java.nio.channels.FileLock在进程间锁定文件有多安全?据说如果我们有一个独占锁,其他进程就无法访问该文件.但是,关于另一个SO问题的下面答案表明其他进程也必须检查文件锁,以便我们的进程安全.

(a)您是否知道锁定文件不会阻止其他进程接触它,除非它们也使用锁?

所以我测试了我的代码并尝试使用Windows文本编辑器更改了一个我已经锁定的文件,并且我不会受到伤害,但是当我使用Notepad ++进行测试时却没有.

是否有在Java 6中正确锁定文件的解决方案?

java nio file-locking filelock

2
推荐指数
1
解决办法
2318
查看次数

Django send_mail"已经锁定了.戒烟."

send_mail在Django 遇到了问题.它一直工作正常,直到我尝试更改某些电子邮件设置,以使其使用EMAIL_HOST_USER和EMAIL_HOST_PASSWORD.当我这样做时,我的测试电子邮件在哪里没有发送.

我恢复了原来的电子邮件设置,它确实有效,现在仍然没有发送电子邮件.我重新启动了一些东西以确保我当前的设置生效.当我运行命令'python manage.py send_mail'来测试我得到这个响应:

获得锁定...锁定已经到位.狭路相逢.

在查看mailer.engine中的代码时:

def send_all():
    """
    Send all eligible messages in the queue.
    """

    lock = FileLock("send_mail")

    logging.debug("acquiring lock...")
    try:
        lock.acquire(LOCK_WAIT_TIMEOUT)
    except AlreadyLocked:
        logging.debug("lock already in place. quitting.")
        return
    except LockTimeout:
        logging.debug("waiting for the lock timed out. quitting.")
        return
    logging.debug("acquired.")

    start_time = time.time()

    dont_send = 0
    deferred = 0
    sent = 0
Run Code Online (Sandbox Code Playgroud)

似乎因为它获得了"AlreadyLocked"异常,它会在不发送电子邮件的情况下退出.如果确实如此,我该如何打破这个锁并重新开始?

python django filelock mailer

1
推荐指数
1
解决办法
885
查看次数

JVM 在哪里持有我的文件锁?

我正在处理 java.nio.file.AccessDeniedException 问题。

我有一个 Scala 程序,如果我这样做:

java.nio.file.Files.delete(FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]\1977 - Foreigner\03 - Starrider.mp3""")) 
Run Code Online (Sandbox Code Playgroud)

一切正常。我有一些代码

def delete(path : Path) {
  try {
    println("deleting " + path)
    java.nio.file.Files.delete(path)
  } catch {
    case exception: Exception => System.err.println(exception)
  }
}

val google1 = FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive\Music\Downloaded\Foreigner [Discography HQ]""")
val google2 = FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]""")

val duplicates = TraversablePaths(List(google1, google2)).duplicateFilesList

println("deleting duplicate files")
duplicates.foreach(_.filter(!_.startsWith(google1)).foreach(delete))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试删除同一个文件时,我得到

java.nio.file.AccessDeniedException: D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]\1977 - Foreigner\03 - Starrider.mp3
Run Code Online (Sandbox Code Playgroud)

我能说的最好的是 JVM 要么锁定了文件,要么锁定了文件所在的目录,但我不知道在哪里。检查文件是否相同的代码看起来像

def identical(file1 : Path, …
Run Code Online (Sandbox Code Playgroud)

java jvm scala filelock

1
推荐指数
1
解决办法
3177
查看次数

C#文件在制作后被锁定

我正在制作一个Windows服务,部分使用FileStream和StreamWriter创建一个.eml/txt文件,它完美地工作,做我需要做的一切.唯一的问题是它所做的新文件由于某种原因后来仍被服务使用,我不知道为什么.任何线索?修复?

我认为它必须是与FileStream和StreamWriter相关的线条,因为它们是触及新文件的唯一东西.提前致谢!

Service1.cs

 public partial class emlService : ServiceBase
{
    Boolean _isRunning;

    public emlService()
    {
        InitializeComponent();
        if (!System.Diagnostics.EventLog.SourceExists("emlServiceSource"))
        {
            System.Diagnostics.EventLog.CreateEventSource(
                "emlServiceSource", "emlServiceLog");
        }
        eventLog1.Source = "emlSerivceSource";
        eventLog1.Log = "emlServiceLog";
    }

    protected override void OnStart(string[] args)
    {
        eventLog1.WriteEntry("In OnStart");
        Thread NewThread = new Thread(new ThreadStart(runProc));
        _isRunning = true;
        //Creates bool to start thread loop
        if (_isRunning)
        {
            NewThread.Start();
        }
    }

    protected override void OnStop()
    {
        eventLog1.WriteEntry("In OnStop");
        _isRunning = false;             
    }

    protected override void OnContinue()
    {

    }

    public void runProc()
    { …
Run Code Online (Sandbox Code Playgroud)

c# file filestream streamwriter filelock

0
推荐指数
2
解决办法
238
查看次数