在线观看肉片AV网站免费_97在线中文字幕免费公开视频_人妻无码二区自慰系列_高清无码黄色在线网站

您當(dāng)前的位置:天府星空常見問題程序開發(fā) → 問題內(nèi)容

計數(shù)器的編寫方法

作者:佚名  來源:本站整理  發(fā)布時間:2007-11-13 13:00:29
03: open(LOCKFILE,">counter.lock);
04: dbmopen(%COUNTERS, $DOCUMENT_ROOT/DBM_FILES/counters,0666);
05: if(!(defined($counters{'my_counter'})){
06: $counters{'my_counter'}=0;}
07: $counters{'my_counter'})++;
08: $count=$counters{'my_counter'};
09: dbmclose (counters);
10: close(LOCKFILE);
11: unlink(counter.lock);
首先檢查鎖定標(biāo)志文件是否存在,如果存在,就說明另一個進(jìn)程正在使用該文件,于是等待直到該文件(此處命名為counter.lock)不存在為止。此處用select()的特殊形式循環(huán)等待,此語句使程序進(jìn)入休眠狀態(tài)一段時間,該時間段由最后一個參數(shù)定義。之所以不用sleep()函數(shù)是因為其基本單位為秒,對這種文件鎖定而言太長了,幾個微秒就足夠了。
當(dāng)鎖定標(biāo)志文件不再存在,就創(chuàng)建自己的鎖定標(biāo)志文件并開始修改計數(shù),完成后關(guān)閉該文件并用unlink函數(shù)將之刪除,這樣其它的進(jìn)程又被允許修改計數(shù)。鎖定標(biāo)志文件并不是特殊的文件,其文件名也可以由你自己隨意選擇。
2)使用flock()
其實鎖定文件是很普通的編程步驟,系統(tǒng)函數(shù)flock()提供了這一功能,如果在你的系統(tǒng)上不提供的話,可以使用前面介紹的方法自己實現(xiàn)。
flock()的語法為:
flock (filehandle, lock_type);
參數(shù)filehandle為用open()函數(shù)打開的文件句柄,lock_type可以為下面四個值之一:
1:定義共享鎖。對計數(shù)器而言不適用。
2:定義排他鎖。
3:定義非阻止鎖。此處亦不用。
4:解除鎖定。
使用flock()實現(xiàn)的文件鎖定例子如下:
1a: dbmopen(%counters,"filename", 0666);
or
1b: OPEN(counters,"<filename")'
2: flock(counters,2);
3: if(!(defined($counters{'my_counter'})){
4: $counters{'my_counter'}=0;}
5: $counters{'my_counter'})++;
6: $count=$counters{'my_counter'};
7: dbmclose (counters);

上一頁  [1] [2] [3] [4] [5] [6] [7]  下一頁

  • 全國統(tǒng)一免費熱線:800-82-98988
  • 業(yè)務(wù)咨詢電話:028-66533110
  • 技術(shù)支持電話:028-66533120
  • 故障搶修電話:028-85568895
  • 投訴以及建設(shè):028-66533130
  • 售后服務(wù)電話:028-66533140
  • 業(yè)務(wù)咨詢:239270001成都網(wǎng)站建設(shè)咨詢
  •  239270002成都網(wǎng)站建設(shè)咨詢
  •  712291959成都網(wǎng)站建設(shè)咨詢
  •  712291960成都網(wǎng)站建設(shè)咨詢
  •  712291950成都網(wǎng)站建設(shè)咨詢
  •  712291951成都網(wǎng)站建設(shè)咨詢

MSN咨詢:info@tfxk.com 技術(shù)支持:support@tfxk.com 中華人民共和國信產(chǎn)部備案號:蜀ICP備06017350號

Copyright:天府星空網(wǎng)絡(luò)科技有限公司(Tfxk.Com)2003-2009

成都總部地址:成都市洗面橋街22號城市陽光大廈13-02.13-04.13-05室 郵編:610041

西昌分公司地址:西昌市文匯路一環(huán)路口 電話:0834-3203999 傳真:0834-3202135 郵編:615000