问题标签 [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.
linux - linux fcntl - 取消设置标志
如何使用 fcntl 取消设置已设置的标志?
例如,我可以使用将套接字设置为非阻塞模式
现在,我想取消设置 O_NONBLOCK 标志。
我试过 fcntl(sockfd, F_SETFL, flags | ~O_NONBLOCK)。它给了我错误 EINVAL
perl - Windows 上 Perl 的flock() 在哪里?
我有一个要在 Windows 上运行的 Perl 脚本,使用Strawberry Perl或ActivePerl;我不在乎哪个。然而,这个脚本使用flock()
调用,这似乎不包含在任何一个 Perl 版本中。
任何人都可以帮助启动并运行它吗?
manual - fcntl问题没有手动输入
当我使用 `man fcntl' 得到消息:
需要安装哪个pkg?
附言。我使用debian。
apache - solaris 中的 fcntl 何时会为 F_SETLKW 返回小于 -1 的值
从 solaris 中 fcntl 的 Mannul 开始,成功完成后,为 F_SETLKW 返回的值将是“-1 以外的值”。但是 Apache httpd 1.3.41 源代码(http_main.c)检查返回值是否为正,如:
在极少数情况下,我们的系统之一中的 apache 会因为测试失败而退出。我怀疑这是由 fcntl 返回的小于 -1 的负值引起的。
那么solaris中的fcntl什么时候会返回小于-1的值呢?
c++ - fcntl 问题编译 C++
此代码使用 fcntl.h 和定义的文件处理函数 - 如 open()、write()、close() 等。代码按预期编译和工作。
当我将它用作 CPP 源代码时,为什么 GCC 会抱怨?奇怪的是,为什么它不抱怨 open()?这里到底发生了什么?
c++ - fcntl() 用于线程或进程同步?
是否可以在文件上使用 fcntl() 系统调用来实现线程/进程同步(而不是信号量)?
unix - 文件读写锁定和取消链接
我有以下问题。我想创建一个基于文件系统的会话存储,其中每个会话数据都存储在以会话 ID 命名的简单文件中。
我想要以下 API: write(sid,data,timeout)
, read(sid,data,timeout)
,remove(sid)
其中 sid==file name, 另外我想要某种可以删除所有超时会话的 GC。
如果您使用单个进程,则任务非常简单,但在使用多个进程甚至通过 NFS 时绝对不是微不足道的。
我想到的最简单的解决方案是:
文件取消链接适用于文件名和文件锁适用于文件描述符的最大问题。因此,上述情况在以下情况下不起作用:
有人知道如何解决此类问题吗?是否有任何技巧可以结合文件锁定和文件删除或对文件进行原子操作?
笔记:
- 我不想使用数据库,
- 我正在寻找 Unix 的解决方案
- 解决方案应适用于标准 POSIX 调用,如 fcnl、打开、关闭、取消链接
谢谢。
澄清主要问题是对文件的操作(名称 - 取消链接)应该通过文件描述符的操作原子地完成 - 锁定:
- 打开,取消链接——处理文件
- fnctl -- 处理描述符
fcntl - 带有参数 F_DUPFD 的 fcntl 的目的是什么
我跟踪了一个oracle进程,发现它首先打开一个文件/etc/netconfig
作为文件句柄11
,然后通过使用参数256
调用复制它,然后是原始文件句柄。后来它使用文件句柄读取。那么复制文件句柄有什么意义呢?为什么不只处理原始文件句柄?fcntl
F_DUPFD
close
11
256
python - 使用 fcntl 锁共享 mmap 协调?
当mmap()
用于共享内存(来自 Linux 或其他类 UNIX 系统)时,是否可以(并且可移植)使用fcntl()
(flock()
或lockf()
函数)来协调对映射的访问?
对这个 SO question的回应似乎表明它应该起作用。
我想到的想法是使用进程/页面映射来构建共享内存,以最大限度地减少锁定争用。进程可以同时使用它们的页面,并且只需要在更新进程/页面映射时获取锁。(从无主页面读取访问将涉及检查序列号,复制所需数据,然后验证该块的序列号没有更改)。
从概念上讲,每个共享这个文件映射的进程都会执行mmap()
,在其中找到一个空闲块,获取进程/页面区域的锁,用自己的分配更新它,释放锁,然后愉快地继续它的工作。任何进程都可以搜索过时的映射(使用kill()
零作为信号)并清理进程/页表映射。
(粗略的通用术语,我正在玩弄一个生产者/消费者处理引擎,它使用来自 Linux 上的 Python 共享内存;我希望该解决方案可以移植到 BSD 和其他编程语言 --- 只要支持mmap()
以及必要的接口fcntl()
,flock()
或者lockf().
我也对显示如何测量锁争用和检测任何同步失败的伪代码感兴趣。我知道线程和多处理及其各自Queue()
的对象是实现Python 生产者/消费者处理模型)。
c++ - 使用 cygwin 编译 c++ 代码的问题
我正在尝试在 cygwin(在 Windows 7 中)中编译一些源代码,并在运行 make 文件时出现以下错误
问题文件是:-
我不明白发生了什么,文件 fcntl.h 可用,并且它所说的未在此范围内声明的变量在我自己编译文件时不会出错
任何帮助将非常感激
非常感谢