CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

flock()里的第二个参数分别代表什么?

楼主ysz628(阿召)2004-05-03 15:26:48 在 Web 开发 / PHP 提问

flock()里的第二个参数分别代表什么?比如flock($filenum,LOCK_SH)里LOCK_SH是什么意思? 问题点数:20、回复次数:2Top

1 楼mistjin(今天天气不错)回复于 2004-05-03 18:40:45 得分 8

bool   flock   (   int   handle,   int   operation   [,   int   &wouldblock])  
  flock()   操作的   handle   必须是一个已经打开的文件指针。   operation   可以是以下值之一:    
  要取得共享锁定(可读),将   operation   设为   LOCK_SH(PHP   4.0.1   以前的版本设置为   1)。    
   
  要取得独占锁定(可写),将   operation   设为   LOCK_EX(PHP   4.0.1   以前的版本中设置为   2)。    
   
  要释放锁定(无论共享或独占),将   operation   设为   LOCK_UN(PHP   4.0.1   以前的版本中设置为   3)。    
   
  如果你不希望   flock()   在锁定时堵塞,则给   operation   增加   LOCK_NB(PHP   4.0.1   以前的版本中设置为   4)。    
  Top

2 楼feel8(Max.H)回复于 2004-05-03 21:17:52 得分 12

flock  
  (PHP   3>=   3.0.7,   PHP   4   )  
   
  flock   --   轻便的咨询文件锁定  
  说明  
  bool   flock   (   int   handle,   int   operation   [,   int   &wouldblock])  
   
   
  PHP   支持以咨询方式(也就是说所有访问程序必须使用同一方式锁定,   否则它不会工作)锁定全部文件的一种轻便方法。    
   
  flock()   操作的   handle   必须是一个已经打开的文件指针。operation   可以是以下值之一:    
   
   
   
  要取得共享锁定(读取程序),将   operation   设为   LOCK_SH(PHP   4.0.1   以前的版本设置为   1)。    
   
  要取得独占锁定(写入程序),将   operation   设为   LOCK_EX(PHP   4.0.1   以前的版本中设置为   2)。    
   
  要释放锁定(无论共享或独占),将   operation   设为   LOCK_UN(PHP   4.0.1   以前的版本中设置为   3)。    
   
  如果你不希望   flock()   在锁定时堵塞,则给   operation   加上   LOCK_NB(PHP   4.0.1   以前的版本中设置为   4)。    
   
   
  flock()   允许你执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的   Unix   派生版和甚至是   Windows)。如果锁定会堵塞的话(EWOULDBLOCK   错误码情况下),请将可选的第三个参数设置为   TRUE。    
   
  如果成功则返回   TRUE,失败则返回   FALSE。    
   
  例子   1.   flock()   例子  
   
  <?php  
   
  $fp   =   fopen("/tmp/lock.txt",   "w+");  
   
  if   (flock($fp,   LOCK_EX))   {   //   进行排它型锁定  
          fwrite($fp,   "Write   something   here\n");  
          flock($fp,   LOCK_UN);   //   释放锁定  
  }   else   {  
          echo   "Couldn't   lock   the   file   !";  
  }  
   
  fclose($fp);  
   
  ?>      
     
   
   
  注:   由于   flock()   需要一个文件指针,   因此你可能需要一个锁定文件来保护到你打算通过写模式打开来截断的文件的访问(在   fopen()   函数中加入   "w"   或   "w+")。    
   
   
  警告    
  flock()   不能在   NFS   以及其他的一些网络文件系统中正常工作。详细资料请检查你的操作系统文档。    
   
  在部分操作系统中,flock()   以处理级执行。当用一个多线程服务器   API(比如   ISAPI)时,您可能不可以依靠   flock()   来保护文件,因为在同一服务器内运行在其它线程的   PHP   脚本可以对该文件进行处理。    
   
  flock()   不支持旧的文件系统,如   FAT   以及它的派生系统。因此,它在这种情况下经常会返回一个   FALSE   值(尤其是指   Windows   98   的用户)。    
     
  Top

相关问题

  • rs.open strSql,my_Conn,3,1 可以告诉我各参数代表什么吗?还有哪些参数又分别是什么作用?
  • 后面的参数代表什么3Q
  • MSG 结构中的参数 lParam wParam 参数代表什么?
  • rst.open 后面参数代表是什么意思?
  • 请问canvas->Arc的8个参数代表什么意思?
  • WinMain的四个参数代表什么含义呢?
  • 请教create database中的Name="xxxx"代表了哪个参数?
  • 请教函数内的参数(TObject *Sender),Sender是代表什么??
  • 请教 shellexecute();函数中的六个参数都代表什么意思?
  • 宏IMPLEMENT_SERIAL中的最后一个参数wShema代表什么意思?

关键词

  • 文件
  • 版本
  • 指针
  • php
  • 系统
  • flock
  • 锁定
  • 参数
  • 设置
  • 独占

得分解答快速导航

  • 帖主:ysz628
  • mistjin
  • feel8

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo