linux下php编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 08:35:20
解释一下这个函数 特别是 $lockfile = "var/run/config.lock";
function config_lock() {

global $g;

$lockfile = "var/run/config.lock";

$n = 0;
while ($n < 10) {
/* open the lock file in append mode to avoid race condition */
if ($fd = fopen($lockfile, "x")) {
/* succeeded */
fclose($fd);
return;
} else {
/* file locked, wait and try again */
sleep(1);
//echo "locked";
$n++;
}
}
嗯 功能我倒是知道 但是为什么这样写$lockfile = "var/run/config.lock" 而且var/run/下没config.lock这个文件啊
嗯 主要对linux不熟 反正在windows不能这样写
呵呵 回答得很详细 其实我主要想知道config.lock这个文件到底是怎么回事?为什么要用这个文件?而且var/run/下没config.lock这个文件啊。

楼主说没有那个文件,我回去想了想.
1.你运行这个代码也没有生成吗?
2.我想主要是权限的问题的,你这个代码没有权限在所指定的地方建立文件.
3.关键是我想这个var/run/config.lock值你是可以修改的,对程序有没有影响要等你试后来回答了

---------------------------------------
不知道是不是一个临时文件,代表锁定状态的

为什么PHP的回答这么少啊,不为分,只为PHP,顶起来

不过只是一个文件名罢了

$lockfile = "var/run/config.lock"; 意思就是把lockfile赋值为"var/run/config.lock",用来记录文件路径用的。
这函数的功能是
global $g; //g设为全局变量

$lockfile = "var/run/config.lock"; //lockfile赋值
while ($n < 10) { //n循环10次
/* open the lock file in append mode to avoid race condition */
if ($fd = fopen($lockfile, "x")) { //如果打开成功则
/* succeeded */
fclose($fd); //关闭。。。居然。。
return;
} else { //打开不成功
/* file locked, wait and try again */
sleep(1); //调用sleep(1)估计是让程序休眠1s之类的
//用来等待别的东西在占用这文件
//如果不存在这文件的话会自动创建,所以很大的