PHP flock() - 幕后是什么?

2023-12-20

在与 PHP 源码搏斗了半个小时后,我放弃了。 :P 问题是 - 在 Gentoo Linux 系统上,PHP freeze() 函数调用归结为什么系统调用?我遇到了一些问题(比如每 20 次循环迭代中阻塞 30 秒类问题),我想知道为什么会这样。


// example: $stream = fopen(FILE, 'rb') or die('???');
$md = stream_get_meta_data($stream);
echo $md['wrapper_type'];
flock($stream);
if this prints plainfile then the call to the php function flock() is handled by php_stdiop_set_option(...) which calls flock(). Depending on whether PHP was compiled with HAVE_FLOCK or not this may be the system call flock() http://www.kernel.org/doc/man-pages/online/pages/man2/flock.2.html or a function defined in flock_compat.c which utilizes fcntl() http://www.kernel.org/doc/man-pages/online/pages/man2/fcntl.2.html. On my gentoo system PHP was compiled with HAVE_FLOCK.

main/streams/plain_wrapper.c @ static int php_stdiop_set_option(...):


       case PHP_STREAM_OPTION_LOCKING:
            if (fd == -1) {
                return -1;
            }

            if ((zend_uintptr_t) ptrparam == PHP_STREAM_LOCK_SUPPORTED) {
                return 0;
            }

            if (!flock(fd, value)) {
                data->lock_flag = value;
                return 0;
            } else {
                return -1;
            }
            break;  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP flock() - 幕后是什么? 的相关文章

  • php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0) 连接失败..!

    我正在使用 php 邮件程序功能 但出现以下错误 如何修复它 2016 01 22 06 15 48 SMTP 错误 无法连接到服务器 php network getaddresses getaddrinfo失败 名称或服务未知 0 连接失
  • 如何在索引视图中打印关联数据

    subjects this gt Subjects gt find all contain gt Users fields gt Users username Users email gt hydrate false gt toArray
  • 控制器 HMVC 内的 CodeIgniter 负载控制器

    我在用着http github com philsturgeon codeigniter template http github com philsturgeon codeigniter template 对于模板 我尝试将其他控制器视图
  • Laravel Redis 配置

    我目前正在使用 Laravel 和 Redis 创建一个应用程序 几乎一切都工作正常 我按照文档中的说明扩展了身份验证 用户可以订阅 登录 注销 我可以创建内容 所有内容都存储在 Redis 中 但我有一个问题 我无法运行 php arti
  • PHP7.1上读取会话数据失败

    分享一个我遇到的问题 现已解决 在我的开发机器上 我使用 PHP 运行 IIS 我升级到 PHP7 突然我的代码不再工作 返回此错误 session start 读取会话数据失败 用户 路径 C WINDOWS temp 看起来像是权限问题
  • CodeIgniter加入选择为

    我的数据库中有 2 个表需要加入 一张表是 artikelen 表 另一张表是 Collections 表 我目前有 this gt db gt select this gt db gt from collecties this gt db
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 通过 PDO 将双精度数插入 MySQL 时精度损失

    我遇到了这种非常烦人的行为 我想知道我是否做错了什么 或者这是否是故意的 如果是的话 为什么 每当我在 php 5 3 中有一个 double 类型的变量 并且想将其插入到数据库 MYSQL 5 0 的 double 类型字段中时 该值总是
  • SQL 查询结果为字符串(或变量)

    是否可以将SQL查询结果输出到一个字符串或变量中 我的php和mysql不好 假设我有数据库 agents 其中包含列 agent id agent fname agent lname agent dept 使用此查询 sql SELECT
  • Php Curl HTTP POST REQUEST 使用嵌套键值对设置自定义标头

    如何使用 Curl 在 php 中设置此标头 CustomInfo 元素是数组 嵌套键值对 AuthenticationInfo 元素是数组 嵌套键值对
  • 如何通过开始索引和结束索引提取子字符串?

    str HelloWorld sub substr str 3 5 echo sub prints loWor 我知道 substr 采用第一个参数 第二个参数是开始索引 而第三个参数是要提取的子字符串长度 我需要的是通过提取子字符串起始索
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • 多维数组 PHP 内爆 [重复]

    这个问题在这里已经有答案了 就我的数据结构而言 我有一个 communications 数组 每个 communications id 本身包含三部分信息 id score 和 content 我想内爆这个数组以获得逗号分隔的 id 列表
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • Laravel 5 命名约定

    我对 Laravel 约定有点困惑 因为我是这个框架的新手 我正在关注 Jeffrey Way 他使用的 Laracasts 视频Plural对于控制器名称 E g 页面控制器 卡片控制器 帖子控制器 但如果我参考官方文档Laravel g
  • MySQL如何从多个表中获取数据

    我正在寻找 php MySQL jquery 的帮助 我有2张桌子 table1表 1 有 4 列 id 标题 desc thumb img tabel2表 2 有 3 列 id 表 id img 我只想将 2 个表与 get QS 的值进
  • 通过 IP 地址限制 Laravel 错误日志

    When debug被设定为true在 Laravel 的app config php有什么方法可以限制结果Whoops包含对某些 IP 地址的堆栈跟踪的错误页面 并且不在该列表中的 IP 显示特定视图 Thanks 没有内置 但是你可能可
  • 为什么 0.5 mod 0.1 在不同的编程语言中结果不同?

    我有一个关于模数的问题 模运算求一个数除以另一个数的余数 我原本期望 0 5 0 1 0 的结果 但是当我在 PHP 或 net 中运行它时 我得到 0 1 我运行的 php 代码是 var dump fmod 0 5 0 1 在 net中
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row
  • 无法将句子插入数据库

    我有一些句子 我必须选择由 6 个以上单词组成的句子 然后它们将被插入到数据库中

随机推荐

  • @FXML 初始化有对应的吗?

    当视图被销毁 阶段关闭 另一个视图取代它的位置等 时 控制器上是否会调用任何方法 也就是说 是否存在对应的 FXML private void initialize Update 我这样做的原因是我的应用程序正在从 PubNub 接收消息
  • 无法实例化 bean:构造函数抛出异常;嵌套异常是 java.lang.NullPointerException

    package baseDao public interface BaseDao public void create Object obj public void delete Object obj public void update
  • 带有协调器布局的 ViewPager

    我的活动布局如下所示
  • classLoader.getResource 在 jar 文件中不起作用

    ClassLoader classLoader Thread currentThread getContextClassLoader URL url classLoader getResource com x y z cfg File fi
  • 有什么方法可以在 TabLayout 中使用 SpannableString 吗?

    我想用两种不同的文本大小设置 TabLayout 的标题 就像下面给出的图片一样 或者反过来也可以达到这个目的 我尝试过使用 SpannableString 如下所示 这段代码在 for 循环中一直到 5 SpannableString m
  • 非空参数与 C 中的 NULL 相比

    在下面的函数中 设计用于释放分配给类型指针的一些内存Maze with Maze是我在另一个文件中定义的结构 我收到编译器错误nonnull argument maze compared to NULL这只是一个警告 但我不得不打开警告 这
  • Android 在 BackPressed 上提示 AlertDialog

    我正在尝试完成应用程序中的主菜单 我认为在 OnBackPressed 方法中添加 AlertDialog 会是一个简单而不错的做法 但是由于某种原因我遇到了各种各样的错误 我在 OnBackPressed 中创建了 AlertDialog
  • 与 apache 建立隧道安全 Websocket 连接

    我正在运行 Apache 只能通过 HTTPS 访问 我想从在同一台计算机上运行的附加服务器应用程序提供 Websocket 服务 但由于客户端不可能通过 443 之外的其他端口连接到我们的服务器 因此这些 Websocket 连接需要通过
  • 如何交换256位AVX(YMM)寄存器中的低128位和高128位

    我正在移植 SSE SIMD 代码以使用 256 位 AVX 扩展 但似乎找不到任何可以混合 洗牌 移动高 128 位和低 128 位的指令 背景故事 我真正想要的是VHADDPS mm256 hadd ps表现得像HADDPS mm ha
  • 如何在 Android SOAP Webservices 中将 InputStream 数据转换为字符串

    当我使用来自 Android 的肥皂 Web 服务时 我想在输出字符串中显示结果 如何将该输入流转换为 Sting package com venkattt pack import java io BufferedReader import
  • Visual Studio 总是为 App.config 选择错误的 xsd

    首先 我有一个具有以下配置的 NET 4 0 应用程序
  • 在 api 调用中更新 2 个猫鼬模式

    目前我正在尝试在 api 调用中更新两个不同的用户架构 第一个模式是登录用户模式 我们给它起一个名字 Tom 第二个模式是注册该应用程序的其他用户 我们给它一个名称 John 架构代码 架构 js var mongoose require
  • JPQL 中的 timestampdiff 等效项(不使用条件)

    我想在 JPQL 中使用以下 mysql 函数 TIMESTAMPDIFF YEAR some start date CURDATE 另外 我不必在 JPA 中使用 Criteria 因为我们正在遵循编写命名查询 JPQL 的实践 那么 这
  • Android studio 始终使用 JDK 7,不要切换到 JDK 8

    我遇到了一些有趣的问题 当我尝试通过单击来更改 JDK 时文件 gt 项目结构 gt SDK 位置 我将其更改为我的新版本 然后我点击OK然后再次打开此页面 它向我显示了以下内容 为什么不想换JDK 甚至我的 PATH 设置为 JDK 8
  • MFCC 的含义

    我有一个概念问题 我知道什么是梅尔标度以及它代表什么 而且我知道这种频谱图仍然包含太多我需要的信息 我认为如果我们想减少频谱图的信息数量 我们可以使用 MFCC 但我实在不明白MFCC是什么以及它代表什么 我在语音识别过程中使用 MFCC
  • 如何在保留子目录的同时拆分 git 存储库?

    我想要的是类似于这个问题 https stackoverflow com questions 359424 detach subdirectory into separate git repository 但是 我希望拆分为单独存储库的目录
  • F# ionide webshaperserverclient - 如何运行

    我跑步时遇到问题websharperserverclient来自 ionide 项目生成器的模板应用程序 并且在网上找不到任何如何操作的信息 我得到的最接近的东西是这个问题 https stackoverflow com questions
  • 纯JSP页面导航最佳实践?

    在我的 Web 应用程序的各个 JSP 页面之间实现导航链接的最佳方法是什么 假设我有一个list jsp显示项目列表 然后 用户单击其中一项以查看该项目的更多详细信息view jsp 现在我需要一个链接view jsp回到list jsp
  • 我可以使用模型绑定验证 HTTP 请求签名令牌和随机数吗?

    我正在使用 ASP NET MVC 设置一个端点 可以向该端点发出操作和检索数据的请求 基本上是一个 API 我使用 2 legged OAuth 模型来验证请求是否使用密钥和签名方法以及随机数表进行签名 以防止劫持 由于模型绑定在 ASP
  • PHP flock() - 幕后是什么?

    在与 PHP 源码搏斗了半个小时后 我放弃了 P 问题是 在 Gentoo Linux 系统上 PHP freeze 函数调用归结为什么系统调用 我遇到了一些问题 比如每 20 次循环迭代中阻塞 30 秒类问题 我想知道为什么会这样 exa