问题标签 [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 投票
2 回答
31389 浏览

c - 是否有可能(并且安全)使接受套接字成为非阻塞的?

我正在寻找一种方法来中断accept()阻塞套接字上的调用。使用信号不是一种选择,因为这意味着在一个库中,我不想让用户信号混乱。使用select()是另一种选择,由于各种原因,在我的情况下它不是很吸引人。

如果可能的话,最有效的方法是从另一个线程将套接字设置为非阻塞模式(使用fcntl()and ),而套接字在调用时被阻塞。预期的行为是调用将返回 with或in 。O_NONBLOCKaccept()accept()EAGAINEWOULDBLOCKerrno

它真的会那样工作吗?安全吗?便携的?

如果你知道这个方法对 Windows 的适用性(你需要使用WSAIoctl()and的地方FONBIO),我也很感兴趣。

0 投票
0 回答
661 浏览

c - fcntl 未检测到套接字 fd 上的错误文件描述符

fcntl(sockfd,F_GETFD,0)没有检测到错误的文件描述符,而select在同一个 sock fd 上会给出错误的文件描述符错误。

0 投票
1 回答
1036 浏览

c - POSIX 文件锁是可重入的吗?

通过fcntl. _ 我想知道这些锁是否是可重入的,即。进程可以获取它已经拥有的锁吗?

0 投票
3 回答
20411 浏览

c++ - 如何使用头文件 fcntl.h 和 unistd.h 读取和写入文件?

我正在尝试学习如何使用头文件<fcntl.h><unistd.h>. 我创建了一个小例子来测试他们程序的工作原理,但它没有按预期工作。这是我的代码:

输入文件是:1 2 3 4 5 6 7 8 9 10

该程序正常编译,但没有创建任何输出文件。谁能告诉我我的代码有什么问题?提前致谢。

0 投票
4 回答
8199 浏览

python - 防止运行 python 脚本的并发实例

可能重复:
Python:程序的单个实例

当一个作业的完成时间比启动器间隔长时,我需要防止一个 cron 作业运行并发实例。我正在尝试使用flock 概念来实现这一点,但是 fcntl 模块的行为并不符合我的预期。

谁能告诉我为什么这可以防止两个并发实例:

为什么这不起作用:

0 投票
3 回答
13746 浏览

python - 如何正确地将 C ioctl 调用转换为 python fcntl.ioctl 调用?

按照在 Linux 中重置串行端口的示例,我想翻译以下代码段

进入有效的python代码。这是我到目前为止尝试过的

以错误结束'module' object has no attribute 'USBDEVFS_RESET'termios 文档在这一点上不是很有帮助,因为它没有列出termios. 另请参阅fcntl 文档termios以获取此类属性的示例。

如何正确地将 C 代码“转换”为 python2.7 代码?

0 投票
1 回答
934 浏览

python - python的fcntl.ioctl中的'op'是什么意思?

根据fcntl 文档,用法fcntl.ioctl如下:

op定义为

它没有回答“什么”操作。它是一个整数吗?一个字符串?一个结构?如何能够正确使用此命令,例如在 Linux 平台上?

0 投票
1 回答
1717 浏览

python - 为什么python的fcntl.ioctl的调用会出现Invalid argument错误

我正在尝试以下列方式使用fcntl.ioctlpython 的fcntl 包中的命令

即它的所有三个版本,使用file_handler创建的文件处理程序open。每个都给我同样的错误:

简单的问题:我如何正确拨打电话fcntl.ioctl?还是fcntl.fcntl改用?

0 投票
0 回答
119 浏览

linux - 如何使用 Perl 读取 HDIO_GET_IDENTITY

我想在 Linux 上使用 perl 读取 HDIO_GET_IDENTITY。我正在尝试使用 Fcntl 模块,但我发现 Perl 模块文档的解释性不是很好。谁能给我指点如何做到这一点?

https://metacpan.org/module/Fcntl

0 投票
1 回答
5113 浏览

ruby - 如何使用 File#flock 对独占锁发出非阻塞请求?

我应该如何申请非阻塞锁?

当单独尝试锁定文件时,为什么 Ruby 的File#flock不能按预期工作?将文件锁定在块中并不是解决此问题的正确解决方案,因为重点是显示锁定持久锁的行为。在块内使用 File#flock 会在块退出时释放锁,因此它不能正确演示问题。

File#flock 以多种方式失败,尤其是在请求非阻塞锁时。下面是一些例子。

File#flock 的失败示例

  • 使用多个独占锁时无限等待,因为#flock 不提供超时锁请求的方法。

    /li>
  • 在文件被独占锁定时请求非阻塞锁定会导致无效参数异常。

    /li>
  • 文档说#flock“根据locking_constant(下表中的逻辑或值)锁定或解锁文件。” 但是,逻辑或会引发Errno::EINVALErrno::EBADF取决于平台。

    /li>

Native File#flock 解决方案首选

虽然在无法获得独占锁时可能会使用Timeout 模块来引发Timeout::Error,但似乎 File#flock 应该能够本机解决这个问题。那么,实际上应该如何在不阻塞的情况下请求独占锁呢?