问题标签 [fcntl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
456 浏览

c - lseek 是否适用于文件重定向?

通常lseekstdin.

但是,如果我像这样运行我的程序怎么办:

./a.out < filename

现在stdin是文件而不是键盘。

lseek在那里工作吗?

我可不可以做

lseek(0, -1, SEEK_CUR)

并获得相同的效果

ungetc()?

0 投票
1 回答
3142 浏览

c - 如何锁定文件以进行 O_RDWR 的读写访问

我找不到有关如何锁定文件以进行读写的答案。

下面的代码是否正确?

0 投票
1 回答
227 浏览

perl - 我使用下面的代码来检查 replace.exe 的单个实例是否正在运行

我使用下面的代码来检查 replace.exe 的单个实例是否正在运行。当我创建 replace.exe 并在 Windows 上运行时,又创建了一个名为 replace(没有任何扩展名)的 0 kb 大小的文件。

我不希望创建该文件,否则我想在 replace.exe 执行结束后自动删除该文件。

请帮助我。谢谢

0 投票
2 回答
934 浏览

c - 在对文件调用 exec() 之前检测到挂载点没有设置 noexec?

我的程序在已写入用户指定目录的二进制文件上调用 exec()。如果该目录位于使用“noexec”挂载的树中,则 exec() 将失败并显示 EACCES。

我不想让 exec() 失败,而是希望能够确定一个目录是否使用 noexec 挂载,但 fcntl()、stat() 或 mount() 都没有返回此信息(通过阅读手册页)。查看 exec 系统调用的内核源代码,看起来此信息存储在 inode 的元数据中,我没有看到任何系统调用返回此信息。

有谁知道这样做的方法?

谢谢。

0 投票
3 回答
14233 浏览

c - 调用 fcntl() 的目的是什么,文件描述符为 -1,cmd 为 F_GETFL?

我试图理解这行代码的含义:

0 投票
1 回答
4184 浏览

pipe - 我正在尝试使用 F_SETPIPE_SZ 更改管道大小,但是在编译时说它未声明?

我正在运行此代码,但我收到一条错误消息,提示 F_SETPIPE_SZ 未声明。我使用的是 Ubuntu 13.04,可能是什么问题?

0 投票
1 回答
2941 浏览

c - 如何使用“fcntl()”锁定和解锁 pid 文件

我在网上甚至在 stackoverflow 上进行了研究,以便找到一个fcntl()用于锁定和解锁 pid 文件的示例,"/var/run/myapp.pid"但我没有找到一个明确的示例。

你能指出一个fcntl()用于锁定和解锁 pid 文件的示例吗?

不应阻止锁(如果文件已被锁定)

0 投票
1 回答
294 浏览

c - 如何 - 使用文件锁对矩阵元素求和(unix - C/C++)

我有一个M[nxn]矩阵,必须考虑以下标准来计算 [n, n] 点中元素的总和: -
随机选择一行或一列;
-sum 它是该行或列的最后一个元素中的元素,并将其他元素设置为 0;

现在,问题是,我必须锁定我正在使用的每一行或每一列,因为我需要使用多个进程来完成这个总和。我该如何解决?
我知道我必须使用它fcntl()和其他一些属于它的东西,但我对解决它的方法很感兴趣。
(感谢您的建议!)

0 投票
3 回答
7528 浏览

linux - 如何在 Linux 中原子地创建锁定文件?

场景:我有许多正在运行的进程需要通过网络获取文件。如果文件已经下载,我希望它缓存在磁盘上。如果另一个进程正在下载文件,则阻塞直到下载完成。

我一直在努力寻找最简单的方法来做到这一点。显而易见的方法是:

该系统在(看似)没有竞争条件的情况下实现了上述目标

不幸的是,我找不到有关如何使用 open() 等创建在 Linux 中锁定的文件的文档。如果我将创建步骤拆分为:

现在创建和锁定之间存在竞争条件(非创建进程在创建者之前获取锁)。

我意识到我可以为每个文件使用一个外部锁定文件(例如文件名 + '.lock),这是我在尝试创建文件名之前获得的,但这感觉......不优雅(我现在需要担心如何处理实际上有.lock 后缀!)

无论如何都可以原子地创建和锁定它(如 Windows 提供的那样),或者外部 lockfile 方法几乎是标准/必需的?

0 投票
1 回答
557 浏览

c - 从不同的进程中强制删除 fcntl 锁

有什么方法可以从未锁定这些范围的进程中删除文件上的 fcntl 字节范围锁定?

我有几个对文件进行字节范围锁定的进程。我基本上需要想出的是一个外部工具,它可以帮助我删除我指定的文件的字节范围锁定。